您现在的位置是:首页 > 志趣人生 > PHP相关网站首页PHP相关

php 关于URL处理的三个函数

  • 轩鸿青
  • 2020-10-24 21:28:55
  • 1270 次阅读
一、http_build_query函数说明:使用给出的关联(或下标)数组生成一个经过 URL-encode 的请求字符串。 http_build_query ( mixed $qu...

一、http_build_query函数

说明:使用给出的关联(或下标)数组生成一个经过 URL-encode 的请求字符串。

 http_build_query ( mixed $query_data [, string $numeric_prefix [, string $arg_separator [, int $enc_type = PHP_QUERY_RFC1738 ]]] ) : string

参数

(1)query_data    可以是数组或包含属性的对象。

(2)numeric_prefix  如果在基础数组中使用了数字下标同时给出了该参数,此参数值将会作为基础数组中的数字下标元素的前缀。 这是为了让 PHP 或其它 CGI 程序在稍后对数据进行解码时获取合法的变量名。
(3)arg_separator 除非指定并使用了这个参数,否则会用 arg_separator.output 来分隔参数。
(4)enc_type   默认使用 PHP_QUERY_RFC1738。如果 enc_type 是 PHP_QUERY_RFC1738,则编码将会以 » RFC 1738 标准和 application/x-www-form-urlencoded 媒体类型进行编码,空格会被编码成加号(+)。

返回值

返回一个 URL 编码后的字符串。 

eg:

$data=array(
    'name'=>'lirongyao',
    'age'=>'27',
    'sex'=>'body',
    'aihao'=>'project',
    'job'=>'doctor',
    'address'=>'henan'
);
echo http_build_query($data);
//result:name=lirongyao&age=27&sex=body&aihao=project&job=doctor&address=henan

二、parse_str函数
说明:如果 str 是 URL 传递入的查询字符串(query string),则将它解析为变量并设置到当前作用域。
语法:parse_str(string,array)
@string必需。规定要解析的字符串。
@array可选。规定存储变量的数组的名称。该参数指示变量将被存储到数组中。

eg:

$str='name=lirongyao&age=27&sex=body&aihao=project&job=doctor&address=henan';
parse_str($str);
echo $name.'<br/>'.$sex.'<br/>'.$aihao.'<br/>'.$age.'<br/>'.$address.'<br/>'.$job.'<br/>';
//result:lirongyao  body  project  27  henan   doctor
parse_str($str,$arr);
lryp($arr);
/*Array
(
    [name] => lirongyao
    [age] => 27
    [sex] => body
    [aihao] => project
    [job] => doctor
    [address] => henan
)*/

注:lryp()为属于自己编写的打印函数,可以用var_dump()代替

敲黑板:parse_str()是http_build_query()反向的函数

三、parse_url
说明:本函数解析一个 URL 并返回一个关联数组,包含在 URL 中出现的各种组成部分。本函数不是用来验证给定 URL 的合法性的,只是将其分解为下面列出的部分。不完整的 URL 也被接受,parse_url() 会尝试尽量正确地将其解析。
参数:
url  要解析的 URL。无效字符将使用 _ 来替换。
component 指定 PHP_URL_SCHEME、 PHP_URL_HOST、 PHP_URL_PORT、 PHP_URL_USER、 PHP_URL_PASS、 PHP_URL_PATH、 PHP_URL_QUERY 或 PHP_URL_FRAGMENT 的其中一个来获取 URL 中指定的部分的 string。 (除了指定为 PHP_URL_PORT 后,将返回一个 integer 的值)。
返回值
对严重不合格的 URL,parse_url() 可能会返回 FALSE。
如果省略了 component 参数,将返回一个关联数组 array,在目前至少会有一个元素在该数组中。数组中可能的键有以下几种:
• scheme - 如 http  
• host  
• port  
• user  
• pass  
• path  
• query - 在问号 ? 之后  
• fragment - 在散列符号 # 之后

如果指定了 component 参数, parse_url() 返回一个 string (或在指定为 PHP_URL_PORT 时返回一个 integer)而不是 array。如果 URL 中指定的组成部分不存在,将会返回 NULL。

eg:

$urla='https://www.lirongyaoper.com/index.php?name=lirongyao&age=27&sex=body&aihao=project&job=doctor&address=henan';
$urlres=parse_url($urla);
lryp($urlres);
//result:
/*Array
(
    [scheme] => https
    [host] => lirongyaoper.com
    [path] => /index.php
    [query] => name=lirongyao&age=27&sex=body&aihao=project&job=doctor&address=henan
)*/


TAG: php
温馨提示:转载请标注内容来源 https://www.lirongyaoper.com/phpxiangguan/42.html
点赞 (2
讨厌 (0

文章评论 (0)

    • 这篇文章还没有收到评论,赶紧来抢沙发吧~


Top