php中的url解析

parse_url解析 URL,返回其组成部分;

array parse_url ( string $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 之后的请求字符串

string http_build_query ( array $formdata [, string $numeric_prefix ] )

使用给出的关联(或下标)数组生成一个经过 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---');

?>

输出结果为:
---door---0%5B%B0%D9%B6%C8%5D=baidu&---door---0%5Bgoogle%5D=%B9%C8%B8%E8&---door---0%5Byahoo%5D=%D1%C5%BB%A2&---door---0%5B%CC%DA%D1%B8%5D=tencent&---door---0%5B%CB%D1%BA%FC%5D=sohu&---door---1%5B0%5D=1&---door---1%5B1%5D=2&---door---1%5B2%5D=3
输出结果为以数组的前缀"---door---" + 数字下标+数组项+& ,如果不设置prefix ,刚只有数字下标。如无数字下标,即数组键名都为字符,则只有"键名=键值&"。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值