1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
| <?php
$imageDirectory = "images/";
$pattern = "/\< *[img][^\>]*[src] *= *[\"\']{0,1}([^\"\'\ >]*)/i";
$prefixImage = "data:image/";
$html = $_POST['CeQueVousVoulez'];
preg_match_all($pattern, $html, $matches, PREG_SET_ORDER);
foreach ($matches as $match) {
//$img = $match[0]; // contient la chaine complète, <img src="....>
$src = $match[1]; // contient le contenu de src
$base64 = explode(";base64,", $src);
// fichier image uniquement
$accept = strpos($base64[0], $prefixImage) !== false;
if ($accept && count($base64) > 1) {
$ext = str_replace($prefixImage, ".", $base64[0]);
// il serait bon de tester l'extension, attention à svg+xml
$decoded = base64_decode($base64[1], true);
$nomFile = $imageDirectory . uniqid("image-") . $ext;
$size = file_put_contents($nomFile, $decoded);
if($size){
$html = str_replace($src, $nomFile, $html);
}
else {
echo "Une erreur c'est produite";
}
}
}
echo $html; // pour mise à jour éventuelle côté client
?>
<?php
if (!isset($_POST['CeQueVousVoulez']) || empty ($_POST['CeQueVousVoulez'])) {
echo "Aucune donnée disponible";
exit;
}
$imageDirectory = "tinymce/images/";
$pattern = "/\< *[img][^\>]*[src] *= *[\"\']{0,1}([^\"\'\ >]*)/i";
$prefixImage = "data:image/";
$html = $_POST['CeQueVousVoulez'];
preg_match_all($pattern, $html, $matches, PREG_SET_ORDER);
foreach ($matches as $match) {
//$img = $match[0]; // contient la chaine complète, <img src="....>
$src = $match[1]; // contient le contenu de src
$base64 = explode(";base64,", $src);
// fichier image uniquement
$accept = strpos($base64[0], $prefixImage) !== false;
if ($accept && count($base64) > 1) {
$ext = str_replace($prefixImage, ".", $base64[0]);
// il serait bon de tester l'extension, attention à svg+xml
$decoded = base64_decode($base64[1], true);
$nomFile = $imageDirectory . uniqid("image-") . $ext;
$size = file_put_contents($nomFile, $decoded);
if($size){
$html = str_replace($src, $nomFile, $html);
}
else {
echo "Une erreur c'est produite";
}
}
}
echo $html; // pour mise à jour éventuelle côté client |
Partager