我有一个PHP页面,它通过一些HTML查找链接,并将其替换为指向本地PHP页面的链接;问题是找到图像链接。我目前使用此代码:
$data = preg_replace('|(<a\s*[^>]*href=[\'"]?)|','\1newjs.php?url=', $data);
匹配
之类的内容<a href="http://google.com">Google</a>
并将用
替换它们<a href="newjs.php?url=http://google.com">Google</a>
我希望用图像文件(jpg,gif,png)做类似的事情并替换类似的东西:
<a href="http://google.com/hello.png">Image</a>
有了这个:
<a href="newjs.php?url=http://google.com/hello.png&image=1">Image</a>
请注意新网址中的“&amp; image = 1”。我可以使用PHP,最好是使用正则表达式吗?
答案 0 :(得分:1)
与正常情况一样,涉及正则表达式和HTML:https://stackoverflow.com/a/1732454/118068
正确的解决方案是使用DOM操作:
$dom = new DOMDocument();
$dom->loadHTML(...);
$xp = new DOMXPath($dom);
$anchors = $xp->query('//a');
foreach($anchors as $a) {
$href = $a->getAttribute('href');
if (is_image_link($href)) { //
$a->setAttribute('href', ... new link here ...);
}
}