在PHP中,解析相对URL到绝对
Haojinghui
・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