我有一个从数据库中获取的超文本标记语言字符串。该字符串有几个base64图像,我需要用一个应该从base64图像字符串生成的图像文件替换它们。我不知道如何做到这一点。任何指针都将不胜感激。
原始html
预期html
echo preg_replace_callback('#(<img\s(?>(?!src=)[^>])*?src=")data:image/(gif|png|jpeg);base64,([\w=+/]++)("[^>]*>)#', "data_to_img", $content);
function data_to_img($match) {
list(, $img, $type, $base64, $end) = $match;
$bin = base64_decode($base64);
$md5 = md5($bin); // generate a new temporary filename
$fn = "tmp/img/$md5.$type";
file_exists($fn) or file_put_contents($fn, $bin);
return "$img$fn$end"; // new <img> tag
}