您好,登錄后才能下訂單哦!
這篇文章主要介紹“PHP查詢字符串的技巧分享”,在日常操作中,相信很多人在PHP查詢字符串的技巧分享問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”PHP查詢字符串的技巧分享”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
RL傳遞變量對于程序員來說已經是司空見慣的事情,很多人會因此認為本文毫無新意。我們把通過URL傳遞變量的方式稱作GET方式,另外一種是POST方式。這兩種方式在PHP中都非常容易實現。舉個例子,假設準備進行數據庫查詢,需要通過GET傳遞三個變量:city、id和paid。
傳統的PHP查詢字符串方法是象下面的例子那樣構造查詢字符串:
/* 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開發者都已經習慣于上面這種方法。它在只有三四個變量的時候毫無問題,但是再增加變量的話,代碼
將變得難以理解和維護,并容易引入細微的錯誤。
傳遞GET變量的***方式是通過PHP5中引入的http_build_query函數,它接收一個數組參數,返回一個格式正確、經過
URL編碼的字符串,可以直接拼接在url中。下面是相應的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查詢字符串例子中,數組包含了變量名和變量值。你也可以傳入只含變量值的數組,函數會使用你提供的變量名(通
過函數的第二個參數傳入)加上數組的索引值構造變量名。比如說你要傳遞六個城市名,可以象下面這么做。
$fields = array('paris',
'new york',
'florence',
'london',
'berlin',
'delhi');
$url = "http:/
/www.example.php?" .http_build_query($fields,
'city', "&");
產生的url如下:
http://www.example.php/?city0=paris&city1=new+york&city2=florence&city3=london&city4=berlin&city5=delhi
(譯注:如果數組元素的key不是默認的整數,那么key就作為對應值的變量名,而象上面例子,數組的key是默認的整數,那么
變量名是函數第二個參數加上元素的key,所以***個變量名就是city0)
PHP查詢字符串函數的第三個參數是可選參數,表示變量的分隔符,默認值是‘&’。不過我更喜歡顯式的傳入這個‘&’分隔符。
此外還可以傳入一個復雜的數組:
$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查詢字符串的構造。
到此,關于“PHP查詢字符串的技巧分享”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。