示例网址:
http://p.static.com/i/logo.jpg
我希望能够从我自己的CDN中提取字符串中引用的url,从src文件和文件夹中提取src url,所以/i/logo.jpg
,然后用散列版本替换它,所以我可以使用任何散列函数,如encode('/i/logo.jpg')
。我想要返回所有匹配网址的数组,然后我可以在字符串中处理str_replace
。
有点复杂,我希望这是有道理的。
由于
答案 0 :(得分:0)
function encode($val) {
return preg_replace(
'/(?<=http:\\/\\/p\\.static\\.com\\/).*/ie',
'hash_function("\\0")',
$val);
}
$src = ...; //HTML data
$d = new DOMDocument;
$d->loadHTML($src);
$images = $d->getElementsByTagName("img");
for ($i = 0; $i < $images->length; $i++) {
$curval = $images->item($i)->getAttribute("src");
$images->item($i)->setAttribute("src", encode($curval));
}
$newHtml = $d->saveHTML();