8.1.4 对URL地址进行分析
一个有效的URL地址由多个部分组成,如协议部分、主机(或IP地址)部分、端口号等。有时在程序中需要使用URL地址的某些部分,单纯通过字符串处理函数也可以获取这些部分,但那样做会降低效率,也比较容易出现一些错误。PHP提供函数parse_url(),专门用来分析一个有效的URL地址,通过这个函数获取URL地址的各个部分。该函数语法如下所示。
parse_url($url);
函数parse_url()的参数是一个URL地址字符串,返回值是一个关联数组,此数组中存储了URL地址的各个部分,关联数组的每个索引对应URL地址的每个部分。这个关联数组包括的内容如下所示。
❑scheme:协议。
❑host:主机IP地址或域名。
❑port:端口号。
❑user:用户名。
❑pass:用户密码。
❑path:访问路径。
❑query:查询参数字符串。
❑fragment:参数片段。
下面通过代码8-3所示程序了解函数parse_url()的使用。
代码8-3 使用函数parse_url()分析一个URL 8-3.php
01 <?php
02 $url="http://www.somesite.com:8000/php/code?id=100&cid=900";//url变量
03 $ret_arr=parse_url($url);//分析指定的url
04
05 echo"要分析的地址:<br/>".$url;
06 echo"<hr>";
07
08 echo"<pre>";
09 echo"分析结果如下:<br/>";
10 print_r($ret_arr);
11 ?>
【代码解析】这段程序第2~3行将URL字符串http://www.somesite.com/php/code?id=100&cid=900作为参数传给函数parse_url(),该函数会将这个字符串做分析后,分解成几个部分存入关联数组。程序将函数的返回值赋给变量$ret_arr,最后用print_r输出这个关联数组。代码8-3的最终输出结果如图8-3所示。
在这个程序执行结果的关联数组中,索引scheme代表URL地址的协议部分(http),索引host代表主机域名部分(www.somesite.com),索引port代表访问端口部分(8000),索引path表示URL地址的路径部分(/php/code),索引query表示URL地址的查询字符串部分(id=100&cid=900)。
注意 函数parse_url()不能用来验证URL地址是否合法,而只是分解URL地址的各个部分。对一个不完整的URL,函数parse_url()会尝试将其正确地解析,对于完全不合格的URL,函数parse_url()会返回FALSE。
共有条评论 网友评论