PHP中url相关函数

1,string urlencode(string $str)/string urldecode(string $str)

urlencode将中文以及特殊字符转化为16进制,然后在每个字符前面加%;
urldecode与urlencode功能相反,将16进制字符转化为中文;
2,string http_build_query(mixed $query_data ,string $numeric_prefix ,string $arg_separator )
将数组生成一个urlencode()后的请求字符串,$query_data数组或包含属性的对象,对象中只有public属性可以加入,数组可以使一维可以是多维;$numeric_prefix如果基础数组中使用数字下标同时给出了该参数,此参数值将会作为基础数组中的数字下标元素的前缀;$arg_separator字符串中分割符号;
如:
<?php
$data  = array( 'foo' => 'bar' ,
    'baz' => 'boom' ,
    'cow' => 'milk' ,
    'php' => 'hypertext processor' );

echo  http_build_query ( $data ) .  "<br/>" ;
echo  http_build_query ( $data ,  '' ,  '&' );

?>

输出:

foo=bar&baz=boom&cow=milk&php=hypertext+processor
foo=bar&baz=boom&cow=milk&php=hypertext+processor

3,parse_url()函数,解析一个 URL,将URL中出现各种部分存入关联数组返回。

mixed parse_url(string $url,int $component),$url为待解析url字符串,$component指定返回url中某一部分。如果$component没有指定,则以数组形式全部返回;如果$component已指定,则返回此部分字符串。

如:

<?php
$url = 'http://username:password@hostname:9090/path?arg=value#anchor';

var_dump(parse_url($url));
var_dump(parse_url($url, PHP_URL_SCHEME));
var_dump(parse_url($url, PHP_URL_USER));
var_dump(parse_url($url, PHP_URL_PASS));
var_dump(parse_url($url, PHP_URL_HOST));
var_dump(parse_url($url, PHP_URL_PORT));
var_dump(parse_url($url, PHP_URL_PATH));
var_dump(parse_url($url, PHP_URL_QUERY));
var_dump(parse_url($url, PHP_URL_FRAGMENT));

输出:

array(8) { ["scheme"]=> string(4) "http" ["host"]=> string(8) "hostname" ["port"]=> int(9090) ["user"]=> string(8) "username" ["pass"]=> string(8) "password" ["path"]=> string(5) "/path" ["query"]=> string(9) "arg=value" ["fragment"]=> string(6) "anchor" } string(4) "http" string(8) "username" string(8) "password" string(8) "hostname" int(9090) string(5) "/path" string(9) "arg=value" string(6) "anchor"

4,

原文地址:https://www.cnblogs.com/usa007lhy/p/6583454.html