気軽に読めるPHP入門書・PHPスクリプトが動かないときの原因と対策などを紹介します。

  1. PHP関数
  2. 13 view

http_build_query関数で作成したURLパラメータが機能しないとき

http_build_query関数は、URLパラメータに使える「id=001&name=nisi&age=40」のような&で区切られた文字列を配列から作成できる便利な関数です。

▼http_build_query関数の使用例

<?php
$array = array(
    "id"=>"001",
    "name"=>"nisi",
    "age"=>"40"
);
$params = http_build_query($array);
echo $params;
?>

この関数で作成した文字列がURLパラメータとして機能しないことがあります。次のように各要素が&ではなく&amp;で結合されてしまっている場合です。ちなみに、実行結果をブラウザに出力すると「id=001&name=nisi&age=40」のように問題のないURLパラメータに見えるので注意しましょう。

▼URLパラメータとして機能しない文字列

id=001&amp;name=nisi&amp;age=40

これは、php.iniのarg_separator.outputが「&amp;」に設定されているのが原因です。XAMPPなどをインストールした場合は、このように設定されていることがあります。

この設定を「&」に変更すれば「id=001&name=nisi&age=40」のように「&」で結合された文字列が作成されます。php.iniを変更しても構いませんし、ini_set関数を使用して現在のスクリプトのみ一時的に変更しても良いでしょう。

▼arg_separator.outputの設定

ini_set("arg_separator.output","&");

PHP関数の最近記事

  1. mb_send_mail関数でReturn-Pathを設定する方法

  2. is_numeric関数とis_int関数の違い

  3. PHPのdate関数の使用例

  4. isset関数とempty関数と「!」の違い

  5. 文字列を分割して配列を作成するexplode関数

関連記事

PAGE TOP