如何解决PHP:将相对的img src网址转换为绝对
|| 我已经将使用cURL的HTML页面提取到字符串中,并将其加载到DOMDocument中。在那里,我可以获得所有的img标签及其源属性。我现在的问题是...如何使这些URL绝对? URL列表可以包含各种变体,例如:foobar.jpg
http://example.com/foobar.jpg
/foobar.jpg
../foobar.jpg
folder/foobar.jpg
如果从任意URL提取HTML,将这些图像URL转换为绝对URL的安全方法是什么?有没有办法也可以考虑基本标记?
解决方法
这是一个很棒的PHP示例,该如何做。
function rel2abs($rel,$base) {
// something
}
更好的例子:
如何将相对URL转换为绝对URL
如何解析和构建URL
,这是您在此页面上找到的便捷功能:
function absUrl($rel,$base) {
if (parse_url($rel,PHP_URL_SCHEME) != \'\') return $rel;
if ($rel[0]==\'#\' || $rel[0]==\'?\') return $base.$rel;
extract(parse_url($base));
$path = preg_replace(\'#/[^/]*$#\',\'\',$path);
if ($rel[0] == \'/\') $path = \'\';
$abs = \"$host$path/$rel\";
$re = array(\'#(/\\.?/)#\',\'#/(?!\\.\\.)[^/]+/\\.\\./#\');
for($n=1; $n>0; $abs=preg_replace($re,\'/\',$abs,-1,$n)) {}
return $scheme.\'://\'.$abs;
}
relative7ѭ是您的相对路径,$base
是您的基本网址。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。