溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

PHP查詢字符串的技巧分享

發(fā)布時(shí)間:2021-08-30 17:11:50 來源:億速云 閱讀:98 作者:chen 欄目:編程語言

這篇文章主要介紹“PHP查詢字符串的技巧分享”,在日常操作中,相信很多人在PHP查詢字符串的技巧分享問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”PHP查詢字符串的技巧分享”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!

RL傳遞變量對于程序員來說已經(jīng)是司空見慣的事情,很多人會因此認(rèn)為本文毫無新意。我們把通過URL傳遞變量的方式稱作GET方式,另外一種是POST方式。這兩種方式在PHP中都非常容易實(shí)現(xiàn)。舉個(gè)例子,假設(shè)準(zhǔn)備進(jìn)行數(shù)據(jù)庫查詢,需要通過GET傳遞三個(gè)變量:city、id和paid。

傳統(tǒng)的PHP查詢字符串方法是象下面的例子那樣構(gòu)造查詢字符串:

  1. /* assume we want to pass this 
    variables */  

  2. $city_name = "new york";  

  3. $invoice_id = 3456;  

  4. $paid = 1;  

  5. $query_string = "city={$city_name}
    &id={$invoice_id}&paid={$paid}"
    ;  

  6. $url = "http://www.example.com?" . 
    $query_string; 

如今大部分PHP開發(fā)者都已經(jīng)習(xí)慣于上面這種方法。它在只有三四個(gè)變量的時(shí)候毫無問題,但是再增加變量的話,代碼

將變得難以理解和維護(hù),并容易引入細(xì)微的錯(cuò)誤。

傳遞GET變量的***方式是通過PHP5中引入的http_build_query函數(shù),它接收一個(gè)數(shù)組參數(shù),返回一個(gè)格式正確、經(jīng)過

URL編碼的字符串,可以直接拼接在url中。下面是相應(yīng)的PHP查詢字符串例子。

  1. $city_name = "new york";  

  2. $invoice_id = 3456;  

  3. $paid = 1;  

  4. $fields = array('city' => 
    $city_name,  

  5. 'id' => $invoice_id,  

  6. 'paid' => $paid);  

  7. $url = "http://www.example.com?" .
     http_build_query($fields, '', "&"); 

在上面這個(gè)PHP查詢字符串例子中,數(shù)組包含了變量名和變量值。你也可以傳入只含變量值的數(shù)組,函數(shù)會使用你提供的變量名(通

過函數(shù)的第二個(gè)參數(shù)傳入)加上數(shù)組的索引值構(gòu)造變量名。比如說你要傳遞六個(gè)城市名,可以象下面這么做。

  1. $fields = array('paris',  

  2. 'new york',  

  3. 'florence',  

  4. 'london',  

  5. 'berlin',  

  6. 'delhi');  

  7. $url = "http:/
    /www.example.php?" .  

  8. 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就作為對應(yīng)值的變量名,而象上面例子,數(shù)組的key是默認(rèn)的整數(shù),那么

變量名是函數(shù)第二個(gè)參數(shù)加上元素的key,所以***個(gè)變量名就是city0)

PHP查詢字符串函數(shù)的第三個(gè)參數(shù)是可選參數(shù),表示變量的分隔符,默認(rèn)值是‘&’。不過我更喜歡顯式的傳入這個(gè)‘&’分隔符。

此外還可以傳入一個(gè)復(fù)雜的數(shù)組:

  1. $city_name = "new york";  

  2. $invoice_id = 3456;  

  3. $currency_name = "euro";  

  4. $total = 345;  

  5. $receipt_no = "fgf44545";  

  6.  

  7. $fields = array('city' => 
    $city_name,  

  8. 'id' => $invoice_id,  

  9. 'paid' => array('currency' =>
     $currency_name,  

  10. 'amount' => $total,  

  11. 'receipt' => $receipt_no)   

  12. );  

  13. $url = "http://www.example.php?" .  

  14. 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í)可以簡化GET進(jìn)行PHP查詢字符串的構(gòu)造。

到此,關(guān)于“PHP查詢字符串的技巧分享”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

php
AI