在PHP中,解析相对URL到绝对

・2 分钟阅读



在PHP中,解析相对URLs到绝对


在使用PHP Simple HTML DOM Parser抓取内容时,将页面中的相对URL解析为绝对URL以便下载网页或图像非常有用。我使用Nadeau Software Consulting的url_to_absolute库来执行此操作,并在此处演示如何执行此操作,以及需要对它代码进行一点小修复。

下载库

点击这里的文章,"如何将相对URL转换为绝对URL"以下载url_to_absolute库;

zip文件包含url_to_absolute.php,split_url.php和join_url.php ,其中第一个包含url_to_absolute()函数,它require()的另外两个包含helper函数的文件。



require "split_url.php";
require "join_url.php";

读起来像这样:



$dir = dirname(__FILE__);
require $dir . "/split_url.php";
require $dir . "/join_url.php";

解析URL

要计算aboutus.html相对于页面http://www.example.com/sitemap.html的绝对URL,请执行以下操作:



url_to_absolute('http://www.example.com/sitemap.html', 'aboutus.html');


这将返回:



http://www.example.com/aboutus.html

要计算../images/somephoto.jpg相对于http://www.example.com/content/sitemap.html的绝对URL,请执行以下操作:



url_to_absolute('http://www.example.com/content/sitemap.html', '../images/somephoto.jpg');


这将返回:



http://www.example.com/images/somephoto.jpg


默认情况下URL被编码/解码

xml和helper函数默认使用rawurlencode和rawurldecode自动编码和解码URL部件,如果使用的URL是不理想的话。

例如,如果要转换/somepage. phpfoo=bar

Haojinghui profile image