文章教程

8.1.4对URL地址进行分析

9/17/2020 9:26:54 PM 人评论 次浏览

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所示。

图 8-3 使用parse_url()分析URL

在这个程序执行结果的关联数组中,索引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。

教程类别