我有一些 HTML,想替换所有 img 标签的“src”属性,以便它们指向另一台主机上相同图像(尽管文件名不同)的副本。
例如,给定这三个标签
<IMG SRC="../graphics/pumpkin.gif" ALT="pumpkin">
<IMG BORDER="5" SRC="redball.gif" ALT="*">
<img alt="cool image" src="http://www.crunch.com/pic.jpg"/>
我希望将它们替换为
<IMG SRC="http://myhost.com/cache/img001.gif" ALT="pumpkin">
<IMG BORDER="5" SRC="http://myhost.com/cache/img002.gif" ALT="*">
<img alt="cool image" src="http://myhost.com/cache/img003.jpg"/>
我知道这有一些正则表达式的魔力,只是不确定它应该是什么样子(或者这是否实际上是最好的方法)。
最佳答案
我试着用 SimpleHTMLDOM 来做这个,它似乎有效:
$html = str_get_html( ... ); // what you have done
$map = array(
"../graphics/pumpkin.gif" => "http://myhost.com/cache/img001.gif",
"redball.gif" => "http://myhost.com/cache/img002.gif",
"http://www.crunch.com/pic.jpg" => "http://myhost.com/cache/img003.gif",
);
foreach ($html->find("img") as $element) {
if (isset($map[$element->src])) {
$element->src = $map[$element->src];
}
}
echo $html;
PS:如果你需要澄清你的问题,你应该编辑你原来的问题而不是打开一个新的,identical question .
关于php - 动态替换所有<img>标签的 "src"属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3808285/