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

Sha*_*ina 2 php replace image

我有一个从数据库中获取的HTML字符串.该字符串有几个base64图像,我需要替换为应该从base64图像字符串生成的图像文件.我不知道我怎么能做到这一点.任何指针都将受到高度赞赏.

原始的HTML

<IMG WIDTH = "217" HEIGHT = "113" SRC ="数据:图像/ PNG; BASE64,iVBORw0KGgoAAAANSUhEUgAAAY4AAADPCAYAAADidzYBAAASK0lEQVR4nO3dXYxc5X3H8e + FL3zhC69kyb5AsApVy0VAaBUJalGVl0ogQBVClpqoSYtcK4I2QkjEShAJ2hCpRKXEdbFKJUJDGingIGqRpEAbE0zqZNPSlJbIwSHlxRBMKcSYF7 + vPb347 + mcmZ3dnbN75jxzzvl + pEdaz779PT7j35zz/M/zgCRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiSp5iaA6b5xZbJqpHJcSe8xPZGwFqlxzgVm6H2R7cQXmuprEthG93jeDtyarhypec4lXmR5eow4I1FN/C + + 24CqNLxPH3vmpC2m4NUTr7XmpC1lAPkBOYoCMvYuJd3y24CqF49iCW4VPEneGjzsDpCb + GVtwlUbWgntr6kJa4LvAdSX9rLuJe0C2MbpJdgNkjK0jzjZswVUKb GxV4V1wJvEyhArdRWxrtVZwPeJ1XRHaRNxB7oBMkayO8UfTl2IWifr5HssdSEt8BkG37exGZieGxO5x6dzY6r/JKYGPCY1kcEhSSrE4JAkFTKJq3pIkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkqTC/g9W561Faz0ASAAAAABJRU5ErkJggg == ">

打算用HTML

<img width ="217"height ="113"src ="images/image_from_png.png">

Pen*_*m10 7

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
}
Run Code Online (Sandbox Code Playgroud)