我有一个从数据库中获取的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">
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)