PHP Url正则表达式过滤
示例url:PHP Url正则表达式过滤,php,regex,Php,Regex,示例url: http://p.static.com/i/logo.jpg 我希望能够从我自己的CDN中提取字符串引用的url,提取src url以及src文件和文件夹,因此/I/logo.jpg,然后用哈希版本替换它,这样我可以使用任何哈希函数,如encode('/I/logo.jpg')。我希望返回所有匹配URL的数组,然后我可以在字符串中处理和str\u replace 有点复杂,我希望这是有道理的 谢谢函数编码($val){ 返回预更换( “/(?@Paul Dixon是的,我想写一些
http://p.static.com/i/logo.jpg
我希望能够从我自己的CDN中提取字符串引用的url,提取src url以及src文件和文件夹,因此/I/logo.jpg
,然后用哈希版本替换它,这样我可以使用任何哈希函数,如encode('/I/logo.jpg')
。我希望返回所有匹配URL的数组,然后我可以在字符串中处理和str\u replace
有点复杂,我希望这是有道理的
谢谢函数编码($val){
返回预更换(
“/(?@Paul Dixon是的,我想写一些类似的东西,但后来我觉得很无聊,所以我写了代码:pI已经尝试过了,但我真的无法编写正则表达式函数来挽救我的生命。下面的preg_replace函数非常棒。我现在正在测试代码,几分钟后会报告。
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();