正则表达式改变所有img src属性的格式

时间:2010-06-28 10:45:17

标签: php regex

假设我有一个包含HTML标记的字符串,其中包含许多img标记,如下所示:

<img src="data/images/original/3.png" alt="" />

我需要一个正则表达式来改变所有图像,使其具有这样的路径:

<img src="/utils/locate-image?path=data%2Fmedia%2Fimages%2Foriginal%2F3.png" alt="" />

我对正则表达式不是很了解所以我会感谢一些可以做到这一点的代码示例吗?

2 个答案:

答案 0 :(得分:6)

不要为此使用正则表达式。 PHP's native DOM parser应该是完美的工作。

$dom = new DOMDocument;
$dom->loadHTML('<img src="foo" alt=""/>');
$images = $dom->getElementsByTagName('img');
foreach($images as $image) {
    $image->setAttribute('src', 'bar');
    echo $dom->saveXML($image);
}

回应<img src="bar" alt=""/>

答案 1 :(得分:3)

不要为此使用正则表达式。 Simple HTML DOM解析器应该是完美的工作。

应该这么简单:

foreach($html->find('img') as $e) {
  $e->src = "insert modified src here";
}

echo $html;
相关问题