我正在尝试处理一些 html 并将所有 img 标签 src 替换为 base64。我编写了下面的函数来转换图像并以base64返回。我需要帮助的是以下内容:
我需要使用 str_replace、preg_replace 或某种正则表达式来扫描一些 html 并将所有“src”替换为图像的 base64 表示。html 存储为变量,而不是实际的 html 文档。例如,如果我有一些 html,例如:
$htmlSample = "<div>Some text, yada yada and now and image <img src='image1.png' /></div>"
我需要扫描它并将src='image.png'替换为 base64 等效项,例如src="data:image/png;base64,/9j/4WvuRXhpZgAASUkqAAgAAAAIAA8BAgASAAAAbgAABAgAK" ---(这不是实际的 base64 只是一些填充文本)。该函数需要能够对 html 中的多个图像执行此操作。如果你能指出我正确的方向,我会非常感激。多谢你们!
function convertImage($file)
{
if($fp = fopen($file,"rb", 0))
{
$picture = fread($fp,filesize($file));
fclose($fp);
$base64 = base64_encode($picture);
$tag = '<img ' . "" .
'src="data:image/png;base64,' . $base64 .
'" />';
return $tag;
}
}