php经典函数之parse_url,parse_str,http_build_query

时间 : 15-01-07 栏目 : Apache, LANMP, PHP 作者 : 虫哥 评论 : 0 点击 : 1,195 次

php经典函数之parse_url:

此函数用于解析URL,非常实用。传入一个url链接,则分解URL成为一个数组并返回。直接上例子:

函数原型:mixed parse_url ( string $url [, int $component = -1 ] )

例子:

<?php $url = 'http://www.recho.net/?p=118'; print_r(parse_url( $url)); ?>

结果:
Array
(
[scheme] => http
[host] => www.recho.net
[path] => /
[query] => p=118
)

可看到,很容易分解出URL的各个部份,有时需要获取链接的所有get参数,可直接使用query即可。
还可以echo parse_url($url, PHP_URL_QUERY);直接打印get串。
第二个参数有以下可选参数:
PHP_URL_SCHEME, PHP_URL_HOST, PHP_URL_PORT, PHP_URL_USER, PHP_URL_PASS, PHP_URL_PATH, PHP_URL_QUERY or PHP_URL_FRAGMENT.

PHP经典函数之parse_str:

parse_str()函数可把查询字符串解析到变量中。
例1:

<?php
parse_str("id=23&name=John%20Adams");
echo $id."<br />";
echo $name;
?>
结果:
23
John Adams

例2:
<?php parse_str("id=23&name=John%20Adams",$myArray); print_r($myArray);
print_r($myArray);
?>
结果:
Array
(
[id] => 23
[name] => John Adams
)
此函数和parse_url配合起来使用,可快速将GET参数及值转换为数组,不需要循环GET变量,方法:
<?php
$url = 'http://www.recho.net/?p=118&a=11&b=22&c=33&d=44';
parse_str(parse_url( $url, PHP_URL_QUERY), $gets);
print_r( $gets);
?>

结果:
Array
(
[p] => 118
[a] => 11
[b] => 22
[c] => 33
[d] => 44
)

PHP经典函数之http_build_query:

使用此函数,可将一个数组转换为get参数串。如通过上面的parse_str配合parse_url得到了GET参数数组,或者手动拼装的数组等(在实际运用上很有用,比如生成单选多选的信息搜索条件时会用得很方便)。
例子:
<?php
$data = array('foo'=>'bar',
'baz'=>'boom',
'cow'=>'milk',
'php'=>'hypertext processor');

echo http_build_query($data);
?>
结果:
foo=bar&baz=boom&cow=milk&php=hypertext+processor

本文标签

除非注明,文章均为( 虫哥 )原创,转载请保留链接: http://www.recho.net/118

php经典函数之parse_url,parse_str,http_build_query:等您坐沙发呢!

发表评论


-----===== 博主信息 =====-----

相关文章

为您推荐

0