在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); // foo=bar&baz=boom&cow=milk&php=hypertext+processor
?>
compact
array compact ( mixed $varname [, mixed $... ] )
(PHP 4, PHP 5) compact — 建立一個數組,包括變量名和它們的值
<?php
$city = "San Francisco";
$state = "CA";
$event = "SIGGRAPH";
$result = compact("city", "state", "event");
// array('city'=>'"San Francisco"','state'=>'CA','event' => "SIGGRAPH")
?>
-------------
$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.bKjia.c0m")); //解析url並輸出返回數組
/*
url 專用格式字符串還原成普通字符串。
語法: string rawurldecode(string str);
返回值: 字符串
函數種類: 編碼處理
內容說明
本函數將字符串解碼。從 url 的字符串專用格式解成普通字符串。詳細的編碼解碼信息及規格文件可以參考 rfc 1738。
*/
echo rawurldecode('foo%20bar%40baz'); //輸出foo bar@baz
/*
string rawurlencode ( string str )
返回字符串,此字符串中除了 -_. 之外的所有非字母數字字符都將被替換成百分號(%)後跟兩位十六進制數。這是在 rfc 1738 中描述的編碼,是為了保護原義字符以免其被解釋為特殊的 url 定界符,同時保護 url 格式以免其被傳輸媒體(像一些郵件系統)使用字符轉換時弄亂。例如,如果你想在 ftp 的 url 中包含密碼:
代碼如下 復制代碼
*/
$str="http://www.bKjia.c0m"; //定義字符串
$result=rawurlencode($str); //對指定字符串編碼
echo $result;
/*
urldecode()
url解碼
*/ //輸出結果
$str="http%3a%2f%2fwww.bKjia.c0m";
$result=urldecode($str);
echo $result;
/*
urlencode()
url編碼
*/
$str="http://www.bKjia.c0m"; //定義字符串
$result=urlencode($str); //對指定字符串編碼
echo $result; //輸出結果