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

Ric*_*nop 1 php regex

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

<img src="data/images/original/3.png" alt="" />
Run Code Online (Sandbox Code Playgroud)

我需要一个正则表达式,可以将所有图像更改为具有以下路径:

<img src="/utils/locate-image?path=data%2Fmedia%2Fimages%2Foriginal%2F3.png" alt="" />
Run Code Online (Sandbox Code Playgroud)

我对正则表达式不是很好,所以我很欣赏一些可以做到这一点的代码示例?

Gor*_*don 6

不要为此使用正则表达式.PHP的原生DOM解析器应该是完美的工作.

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

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

  • +1(尽管第1段中有明显的版权侵犯!:)因为它不需要外部库. (3认同)