在php中url处理函数有很多,如有:http_build_query,compact,urldecode、urlencode,parse_url,rawurldecode等等函数。
http_build_query
(PHP 5) http_build_query — 生成 URL-encode 之后的请求字符串,实例代码如下:
- <?php
- $data = array('foo'=>'bar',
- 'baz'=>'boom',
- 'cow'=>'milk',
- 'php'=>'hypertext processor');echo http_build_query($data);
- ?>
compact
array compact ( mixed $varname [, mixed $... ] )
(PHP 4,PHP 5) compact — 建立一个数组,包括变量名和它们的值,实例代码如下:
- <?php
- $city = "San Francisco";
- $state = "CA";
- $event = "SIGGRAPH";
- $result = compact("city", "state", "event");
-
- ?>
- -------------
- $qs=compact('province','city','name');
- foreach($qs as $key => $value){
- if(!$value){
- unset($qs[$key]);
- }
- }
- $url='something/search/?'.http_build_query($qs) ;
urldecode、urlencode
下面来看介绍与实例。
parse_url($str url);
把url转换成数组,实例代码如下:
- */
- print_r(parse_url("www.phpfensi.com"));
- /*
url 专用格式字符串还原成普通字符串。
语法: string rawurldecode(string str);
返回值: 字符串
函数种类: 编码处理
内容说明
本函数将字符串解码,从 url 的字符串专用格式解成普通字符串,详细的编码解码信息及规格文件可以参考 rfc 1738,实例代码如下:
- */
- echo rawurldecode('foo%20bar%40baz');
- /*
- string rawurlencode ( string str )
返回字符串,此字符串中除了 -_,之外的所有非字母数字字符都将被替换成百分号(%)后跟两位十六进制数,这是在 rfc 1738 中描述的编码,是为了保护原义字符以免其被解释为特殊的 url 定界符,同时保护 url 格式以免其被传输媒体(像一些邮件系统)使用字符转换时弄乱,例如,如果你想在 ftp 的 url 中包含密码,实例代码如下:
- */
- $str="http://www.phpfensi.com"; //定义字符串
- $result=rawurlencode($str);
- echo $result;
-
-
-
-
- $str="http%3a%2f%2fwww.phpfensi.com";
- $result=urldecode($str);
- echo $result;
- /*
urlencode()
url编码
- */
- $str="http://www.phpfensi.net"; //定义字符串
- $result=urlencode($str);
- echo $result;
|