parse_url—解析 URL,返回其组成部分;
本函数解析一个 URL 并返回一个关联数组,包含在 URL 中出现的各种组成部分。本函数不是用来验证给定 URL 的合法性的,只是将其分解为下面列出的部分。不完整的 URL 也被接受,parse_url() 会尝试尽量正确地将其解析。
e.g.
<?php
//GBK下的“百度”编码;
$query=urlencode("百度");
echo "GBK汉字'百度'的URL编码为:百分号跟随16进制数制以对应ASCII字符:".$query.'<br>';
//实际搜索“百度”关键字产生的URL;
$url="http://www.baidu.com/s?bs=url%BD%E2%CE%F6&f=8&rsv_bp=1&wd=%B0%D9%B6%C8&inputT=3047";
$component=parse_url($url);
echo "解析这个地址得到的结果:";
var_dump($component);
?>
输出结果为:
GBK汉字'百度'的URL编码为:百分号跟随16进制数制以对应ASCII字符:%B0%D9%B6%C8
解析这个地址得到的结果:
array'scheme' =>string'http'(length=4)'host' =>string'www.baidu.com'(length=13)'path' =>string'/s'(length=2)'query' =>string'bs=url%BD%E2%CE%F6&f=8&rsv_bp=1&wd=%B0%D9%B6%C8&inputT=3047'(length=59)
返回一个数组:
对严重不合格的 URL,parse_url() 可能会返回 FALSE 并发出 E_WARNING。否则会返回一个关联数组,其组成部分为(至少有一个):
- scheme - 如 http
- host
- port
- user
- pass
- path
- query - 在问号 ? 之后
- fragment - 在散列符号 # 之后
http_build_query — 生成 URL-encode 之后的请求字符串
使用给出的关联(或下标)数组生成一个经过 URL-encode 的请求字符串。参数 formdata 可以是数组或包含属性的对象。一个 formdata 数组可以是简单的一维结构,也可以是由数组组成的数组(其依次可以包含其它数组)。
如果在基础数组中使用了数字下标同时给出了 numeric_prefix 参数,此参数值将会作为基础数组中的数字下标元素的前缀。
这是为了让 PHP 或其它 CGI 程序在稍后对数据进行解码时获取合法的变量名。
e.g.
<?php
$query=array(array('百度'=>'baidu','google'=>'谷歌','yahoo'=>'雅虎','腾迅'=>'tencent','搜狐'=>'sohu'),array(1,2,3));
echo http_build_query($query,'---door---');
?>