php中url处理函数总结

在php中url处理函数有很多,如有:http_build_query,compact,urldecode、urlencode,parse_url,rawurldecode等等函数。

http_build_query

(PHP 5) http_build_query — 生成 URL-encode 之后的请求字符串,实例代码如下:

  1. <?php
  2. $data = array('foo'=>'bar',
  3. 'baz'=>'boom',
  4. 'cow'=>'milk',
  5. 'php'=>'hypertext processor');echo http_build_query($data); // foo=bar&baz=boom&cow=milk&php=hypertext+processor
  6. ?>

compact

array compact ( mixed $varname [, mixed $... ] )

(PHP 4,PHP 5) compact — 建立一个数组,包括变量名和它们的值,实例代码如下:

  1. <?php
  2. $city = "San Francisco";
  3. $state = "CA";
  4. $event = "SIGGRAPH";
  5. $result = compact("city", "state", "event");
  6. // array('city'=>'"San Francisco"','state'=>'CA','event' => "SIGGRAPH")
  7. ?>
  8. -------------
  9. $qs=compact('province','city','name');
  10. foreach($qs as $key => $value){
  11. if(!$value){
  12. unset($qs[$key]);
  13. }
  14. }
  15. $url='something/search/?'.http_build_query($qs) ;

urldecode、urlencode

下面来看介绍与实例。

parse_url($str url);

把url转换成数组,实例代码如下:

  1. */
  2. print_r(parse_url("www.phpfensi.com")); //解析url并输出返回数组
  3. /*

url 专用格式字符串还原成普通字符串。

语法: string rawurldecode(string str);

返回值: 字符串

函数种类: 编码处理

内容说明

本函数将字符串解码,从 url 的字符串专用格式解成普通字符串,详细的编码解码信息及规格文件可以参考 rfc 1738,实例代码如下:

  1. */
  2. echo rawurldecode('foo%20bar%40baz'); //输出foo bar@baz
  3. /*
  4. string rawurlencode ( string str )

返回字符串,此字符串中除了 -_,之外的所有非字母数字字符都将被替换成百分号(%)后跟两位十六进制数,这是在 rfc 1738 中描述的编码,是为了保护原义字符以免其被解释为特殊的 url 定界符,同时保护 url 格式以免其被传输媒体(像一些邮件系统)使用字符转换时弄乱,例如,如果你想在 ftp 的 url 中包含密码,实例代码如下:

  1. */
  2. $str="http://www.phpfensi.com"; //定义字符串
  3. $result=rawurlencode($str); //对指定字符串编码
  4. echo $result;
  5. /*
  6. urldecode()
  7. url解码
  8. */ //输出结果
  9. $str="http%3a%2f%2fwww.phpfensi.com";
  10. $result=urldecode($str);
  11. echo $result;
  12. /*

urlencode()

url编码

  1. */
  2. $str="http://www.phpfensi.net"; //定义字符串
  3. $result=urlencode($str); //对指定字符串编码
  4. echo $result; //输出结果