Home  >  Article  >  Backend Development  >  PHP Query String Tips Sharing_PHP Tutorial

PHP Query String Tips Sharing_PHP Tutorial

WBOY
WBOYOriginal
2016-07-15 13:35:03926browse

For an experienced

RL passing variables is a common thing for programmers, and many people will think that this article is nothing new. We call the method of passing variables through URL the GET method, and the other method is the POST method. Both methods are very easy to implement in PHP. For example, suppose you are preparing to perform a database query and need to pass three variables through GET: city, id and paid.

The traditional PHP query string method is to construct the query string like the following example:

  1. /* assume we want to pass this
    variables */
  2. $city_name = " new york"; >3456
  3. ; $paid = >1
  4. ; $ query_string = "city={$city_name} &id={$invoice_id}&paid={$paid}"
  5. ; $url
    =
    "http://www.example.com?"
  6. . $query_string; Most PHP developers are now accustomed to the above method. It has no problem when there are only three or four variables, but if you add more variables, the code will become difficult to understand and maintain, and it is easy to introduce subtle errors. The best way to pass GET variables is through the http_build_query function introduced in PHP5. It receives an array parameter and returns a properly formatted, URL-encoded string, which can be directly spliced ​​in in url. Below is the corresponding PHP query string example.

In the above PHP query string example, the array contains the variable name and variable value. You can also pass in an array containing only variable values, and the function will construct the variable name using the variable name you provide (passed in through the second parameter of the function via

) plus the index value of the array. For example, if you want to pass six city names, you can do as follows.

The generated url is as follows:

http://www.example.php/?city0=paris&city1=new+york&city2=florence&city3=london&city4=berlin&city5 =delhi
<ol class="dp-xml">
<li class="alt"><span><span>$</span><span class="attribute">city_name</span><span> = </span><span class="attribute-value">"new york"</span><span>;  </span></span></li>
<li>
<span>$</span><span class="attribute">invoice_id</span><span> = </span><span class="attribute-value">3456</span><span>;  </span>
</li>
<li class="alt">
<span>$</span><span class="attribute">paid</span><span> = </span><span class="attribute-value">1</span><span>;  </span>
</li>
<li>
<span>$</span><span class="attribute">fields</span><span> = </span><span class="attribute-value">array</span><span>('city' =</span><span class="tag">></span><span> <br>$city_name,  </span>
</li>
<li class="alt">
<span>'id' =</span><span class="tag">></span><span> $invoice_id,  </span>
</li>
<li>
<span>'paid' =</span><span class="tag">></span><span> $paid);  </span>
</li>
<li class="alt">
<span>$</span><span class="attribute">url</span><span> = </span><span class="attribute-value">"http://www.example.com?"</span><span> .<br> http_build_query($fields, '', "&"); </span>
</li>
</ol>

(Annotation: If the key of the array element is not the default integer, then key is used as the variable name of the corresponding value. As in the above example, the key of the array is the default integer, then

The variable name is the second parameter of the function plus the key of the element, so the first variable name is city0)

The third parameter of the PHP query string function is an optional parameter, indicating the delimiter of the variable , the default value is '&'. But I prefer to pass in the '&' separator explicitly.

<ol class="dp-xml">
<li class="alt"><span><span>$</span><span class="attribute">fields</span><span> = </span><span class="attribute-value">array</span><span>('paris',  </span></span></li>
<li><span>'new york',  </span></li>
<li class="alt"><span>'florence',  </span></li>
<li><span>'london',  </span></li>
<li class="alt"><span>'berlin',  </span></li>
<li><span>'delhi');  </span></li>
<li class="alt">
<span>$</span><span class="attribute">url</span><span> = </span><span class="attribute-value">"http:/<br>/www.example.php?"</span><span> .  </span>
</li>
<li><span>http_build_query($fields,<br> 'city', "&"); </span></li>
</ol>
You can also pass in a complex array:

It will generate the following URL:

http ://www.example.com?city=new+york&id=3456&paid%5Bcurrency%5D=euro&paid%5Bamount%5D=345&paid%5Breceipt%

5D=fgf44545

In summary, http_build_query( ) can really simplify the construction of PHP query strings for GET.

<ol class="dp-xml">
<li class="alt"><span><span>$</span><span class="attribute">city_name</span><span> = </span><span class="attribute-value">"new york"</span><span>;  </span></span></li>
<li>
<span>$</span><span class="attribute">invoice_id</span><span> = </span><span class="attribute-value">3456</span><span>;  </span>
</li>
<li class="alt">
<span>$</span><span class="attribute">currency_name</span><span> = </span><span class="attribute-value">"euro"</span><span>;  </span>
</li>
<li>
<span>$</span><span class="attribute">total</span><span> = </span><span class="attribute-value">345</span><span>;  </span>
</li>
<li class="alt">
<span>$</span><span class="attribute">receipt_no</span><span> = </span><span class="attribute-value">"fgf44545"</span><span>;  </span>
</li>
<li><span> </span></li>
<li class="alt">
<span>$</span><span class="attribute">fields</span><span> = </span><span class="attribute-value">array</span><span>('city' =</span><span class="tag">></span><span> <br>$city_name,  </span>
</li>
<li>
<span>'id' =</span><span class="tag">></span><span> $invoice_id,  </span>
</li>
<li class="alt">
<span>'paid' =</span><span class="tag">></span><span> array('currency' =</span><span class="tag">><br></span><span> $currency_name,  </span>
</li>
<li>
<span>'amount' =</span><span class="tag">></span><span> $total,  </span>
</li>
<li class="alt">
<span>'receipt' =</span><span class="tag">></span><span> $receipt_no)   </span>
</li>
<li><span>);  </span></li>
<li class="alt">
<span>$</span><span class="attribute">url</span><span> = </span><span class="attribute-value">"http://www.example.php?"</span><span> .  </span>
</li>
<li><span>http_build_query($fields, '', "&"); </span></li>
</ol>

http://www.bkjia.com/PHPjc/445934.html

www.bkjia.com

true

http: //www.bkjia.com/PHPjc/445934.html

TechArticle
For an experienced RL programmer, passing variables is already commonplace, and many people will think that This article is nothing new. We call the method of passing variables through URL...

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn