成都公司:成都市成華區(qū)建設(shè)南路160號1層9號
重慶公司:重慶市江北區(qū)紅旗河溝華創(chuàng)商務(wù)大廈18樓
當前位置:工程項目OA系統(tǒng) > 泛普各地 > 江西OA系統(tǒng) > 鷹潭OA > 鷹潭網(wǎng)站建設(shè)公司
PHP查詢字符串技巧
關(guān)于一個經(jīng)驗豐富的PHP程序員來說,完成字符串的查詢功用曾經(jīng)不是什么難事了。在這里咱們將會引見一種PHP查詢字符串的捷徑技巧,供大家參閱。
RL傳遞變量關(guān)于程序員來說曾經(jīng)是習以為常的工作,很多人會因而以為本文毫無新意。咱們把顛末URL傳遞變量的辦法稱作GET辦法,別的一種是POST辦法。這兩種辦法在PHP中都十分簡單完成。舉個比如,假定預備進行數(shù)據(jù)庫查詢,需求顛末GET傳遞三個變量:city、id和paid。

傳統(tǒng)的PHP查詢字符串辦法是象下面的比如那樣結(jié)構(gòu)查詢字符串:
/* assume we want to pass this
variables */
$city_name = "new york";
$invoice_id = 3456;
$paid = 1;
$query_string = "city={$city_name}
&id={$invoice_id}&paid={$paid}";
$url = "http://www.example.com?" .
$query_string;
如今大部分PHP開發(fā)者都曾經(jīng)習慣于上面這種辦法。它在只要三四個變量的時分毫無問題,可是再添加變量的話,代碼
將變得難以了解和保護,并簡單引進纖細的過錯。
傳遞GET變量的最佳辦法是顛末PHP5中引進的http_build_query函數(shù),它接納一個數(shù)組參數(shù),回來一個格局正確、顛末
URL編碼的字符串,可以直接拼接在url中。下面是相應(yīng)的PHP查詢字符串比如。
$city_name = "new york";
$invoice_id = 3456;
$paid = 1;
$fields = array('city' =>
$city_name,
'id' => $invoice_id,
'paid' => $paid);
$url = "http://www.example.com?" .
http_build_query($fields, '', "&");
在上面這個PHP查詢字符串比如中,數(shù)組包含了變量名和變量值。你也可以傳入只含變量值的數(shù)組,函數(shù)會使用你供給的變量名(通
過函數(shù)的第二個參數(shù)傳入)加上數(shù)組的索引值結(jié)構(gòu)變量名。比如說你要傳遞六個城市名,可以象下面這么做。
$fields = array('paris',
'new york',
'florence',
'london',
'berlin',
'delhi');
$url = "http:/
/www.example.php?" .
http_build_query($fields,
'city', "&");
發(fā)生的url如下:
http://www.example.php/?city0=paris&city1=new+york&city2=florence&city3=london&city4=berlin&city5=delhi
(譯注:若是數(shù)組元素的key不是默許的整數(shù),那么key就作為對應(yīng)值的變量名,而象上面比如,數(shù)組的key是默許的整數(shù),那么
變量名是函數(shù)第二個參數(shù)加上元素的key,所以第一個變量名就是city0)
PHP查詢字符串函數(shù)的第三個參數(shù)是可選參數(shù),表明變量的分隔符,默許值是‘&’。不過我更喜歡顯式的傳入這個‘&’分隔符。
此外還可以傳入一個雜亂的數(shù)組:
$city_name = "new york";
$invoice_id = 3456;
$currency_name = "euro";
$total = 345;
$receipt_no = "fgf44545";
$fields = array('city' =>
$city_name,
'id' => $invoice_id,
'paid' => array('currency' =>
$currency_name,
'amount' => $total,
'receipt' => $receipt_no)
);
$url = "http://www.example.php?" .
http_build_query($fields, '', "&");
它將生成以下URL:
http://www.example.com?city=new+york&id=3456&paid%5Bcurrency%5D=euro&paid%5Bamount%5D=345&paid%5Breceipt%
5D=fgf44545

總而言之,http_build_query()的確可以簡化GET進行PHP查詢字符串的結(jié)構(gòu)。

