這篇文章主要介紹“PHP查詢字符串的技巧分享”,在日常操作中,相信很多人在PHP查詢字符串的技巧分享問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”PHP查詢字符串的技巧分享”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!
創(chuàng)新互聯(lián)公司主營(yíng)港南網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,重慶App定制開(kāi)發(fā),港南h5微信小程序開(kāi)發(fā)搭建,港南網(wǎng)站營(yíng)銷推廣歡迎港南等地區(qū)企業(yè)咨詢
RL傳遞變量對(duì)于程序員來(lái)說(shuō)已經(jīng)是司空見(jiàn)慣的事情,很多人會(huì)因此認(rèn)為本文毫無(wú)新意。我們把通過(guò)URL傳遞變量的方式稱作GET方式,另外一種是POST方式。這兩種方式在PHP中都非常容易實(shí)現(xiàn)。舉個(gè)例子,假設(shè)準(zhǔn)備進(jìn)行數(shù)據(jù)庫(kù)查詢,需要通過(guò)GET傳遞三個(gè)變量:city、id和paid。
傳統(tǒng)的PHP查詢字符串方法是象下面的例子那樣構(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開(kāi)發(fā)者都已經(jīng)習(xí)慣于上面這種方法。它在只有三四個(gè)變量的時(shí)候毫無(wú)問(wèn)題,但是再增加變量的話,代碼
將變得難以理解和維護(hù),并容易引入細(xì)微的錯(cuò)誤。
傳遞GET變量的***方式是通過(guò)PHP5中引入的http_build_query函數(shù),它接收一個(gè)數(shù)組參數(shù),返回一個(gè)格式正確、經(jīng)過(guò)
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, '', "&");
在上面這個(gè)PHP查詢字符串例子中,數(shù)組包含了變量名和變量值。你也可以傳入只含變量值的數(shù)組,函數(shù)會(huì)使用你提供的變量名(通
過(guò)函數(shù)的第二個(gè)參數(shù)傳入)加上數(shù)組的索引值構(gòu)造變量名。比如說(shuō)你要傳遞六個(gè)城市名,可以象下面這么做。
$fields = array('paris',
'new york',
'florence',
'london',
'berlin',
'delhi');
$url = "http:/
/www.example.php?" .http_build_query($fields,
'city', "&");
產(chǎn)生的url如下:
http://www.example.php/?city0=paris&city1=new+york&city2=florence&city3=london&city4=berlin&city5=delhi
(譯注:如果數(shù)組元素的key不是默認(rèn)的整數(shù),那么key就作為對(duì)應(yīng)值的變量名,而象上面例子,數(shù)組的key是默認(rèn)的整數(shù),那么
變量名是函數(shù)第二個(gè)參數(shù)加上元素的key,所以***個(gè)變量名就是city0)
PHP查詢字符串函數(shù)的第三個(gè)參數(shù)是可選參數(shù),表示變量的分隔符,默認(rèn)值是‘&’。不過(guò)我更喜歡顯式的傳入這個(gè)‘&’分隔符。
此外還可以傳入一個(gè)復(fù)雜的數(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()確實(shí)可以簡(jiǎn)化GET進(jìn)行PHP查詢字符串的構(gòu)造。
到此,關(guān)于“PHP查詢字符串的技巧分享”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!