ホームページ  >  記事  >  バックエンド開発  >  PHP クエリ文字列のヒント Sharing_PHP チュートリアル

PHP クエリ文字列のヒント Sharing_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-15 13:35:03894ブラウズ

経験豊富な

RL プログラマーにとって、変数を渡すことはすでに一般的なことであり、多くの人がこの記事は何も目新しいものではないと考えるでしょう。 URL を通じて変数を渡す方法を GET メソッドと呼び、もう 1 つの方法を POST メソッドと呼びます。どちらのメソッドも PHP で実装するのは非常に簡単です。たとえば、データベース クエリを実行する準備をしていて、GET で city、id、paid の 3 つの変数を渡す必要があるとします。従来の PHP クエリ文字列の方法では、次の例のようなクエリ文字列を構築します。

  1. /*この 変数を渡すと仮定します*/
    $
  2. City_name = 「ニューヨーク」$invoice_id
  3. = $; 有料 = 1
  4. ; $query_string = "city={$city_name} &id={$invoice_id}&={$paid}"
  5. $ URL = "http://www.example.com?"
    .
  6. 現在、ほとんどの PHP 開発者は上記の方法に慣れています。変数が 3 つまたは 4 つだけの場合は問題ありませんが、変数を追加すると、コード の理解と保守が難しくなり、微妙なエラーが発生しやすくなります。 GET 変数を渡す最良の方法は、PHP5 で導入された http_build_query 関数を使用することです。この関数は、配列パラメーターを受け取り、URL に直接接続できる適切にフォーマットされたURL エンコードされた文字列を返します。以下は、対応する PHP クエリ文字列の例です。
    <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>
    上記の PHP クエリ文字列の例では、配列には変数名と変数値が含まれています。変数値のみを含む配列を渡すこともできます。その場合、関数は、指定した変数名 (関数の 2 番目のパラメーターを通じて渡される) と配列のインデックス値を使用して変数名を構築します。たとえば、6 つの都市名を渡したい場合は、次のように実行できます。
    <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>

  7. 生成される URL は次のとおりです:

http://www.example.php/?city0=paris&city1=new+york&city2=florence&city3=london&city4=berlin&city5=delhi

(注釈:配列要素がデフォルトではない場合、キーは対応する値の変数名として使用されます。上記の例のように、配列のキーがデフォルトの整数である場合、変数名はその 2 番目のパラメーターになります。関数に要素のキーを加えたものであるため、最初の変数名は city0) になります。

PHP クエリ文字列関数の 3 番目のパラメーターは、変数の区切り文字を表すオプションのパラメーターです。デフォルト値は '&' です。ただし、私は「&」区切り文字を明示的に渡すことを好みます。

複雑な配列を渡すこともできます:

<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>

次の 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 クエリ文字列の構築を簡素化できます。

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

www.bkjia.com

tru​​e

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

技術記事

変数を渡すことは、RL の経験があるプログラマにとっては一般的なことなので、多くの人はこの記事は何も新しいことではないと思うでしょう。 URL 経由で変数を渡すメソッドを呼び出します...

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。