«

php用preg_replace把img标签里的src替换成别的网址

瑞瑞瑞 发布于 阅读:224 技术分享


以下是使用 PHP 的preg_replace函数将给定的<img>标签中的src属性值替换为http://www.xx.com/1.jpg的代码:

$html = '<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAB4CAYAAAAddCx+AAAKo0lEQVR4Ae2dLXPyWheG8y+QlY+sRCIrKysrK5H9CZXISmaOQSKRSNzBnJnOHFAASUVORK5CYII=" alt="">';
$newHtml = preg_replace('/src=".*?"/', 'src="http://www.xx.com/1.jpg"', $html);
echo $newHtml;

上述代码首先定义了一个包含<img>标签的字符串,然后使用preg_replace函数进行正则表达式替换,将src属性值替换为指定的 URL。

请注意,使用正则表达式进行 HTML 处理可能存在一些局限性,并且在实际应用中,更好的方法可能是使用专门的 HTML 解析库来操作 HTML 内容,以确保准确性和稳定性。例如,可以使用DOMDocument类来处理 HTML。以下是使用DOMDocument的示例:

$html = '<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAB4CAYAAAAddCx+AAAKo0lEQVR4Ae2dLXPyWheG8y+QlY+sRCIrKysrK5H9CZXISmaOQSKRSNzBnJnOHFAASUVORK5CYII=" alt="">';
$dom = new DOMDocument();
@$dom->loadHTML($html);
$imgs = $dom->getElementsByTagName('img');
foreach ($imgs as $img) {
    $img->setAttribute('src', 'http://www.xx.com/1.jpg');
}
echo $dom->saveHTML();