提问者:小点点

用php搜索和替换base64图像字符串


我有一个从数据库中获取的超文本标记语言字符串。该字符串有几个base64图像,我需要用一个应该从base64图像字符串生成的图像文件替换它们。我不知道如何做到这一点。任何指针都将不胜感激。

原始html

预期html


共1个答案

匿名用户

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
}