インターネットの継続的な発展に伴い、私たちはデータの送信と交換にますますネットワークに依存するようになりました。 Web の閲覧、電子商取引、オンライン支払いのいずれにおいても、私たちは皆、URL を使用して必要な情報を送信および取得する必要があります。
PHP では、URL パラメーターを渡して処理するために、配列を URL に変換する必要があることがよくあります。この記事では、PHP 配列を URL に変換する方法を説明し、参考となる実用的なコード例を示します。
変換方法
PHP では、http_build_query() 関数を使用して配列を URL 形式に変換できます。 http_build_query() 関数は、配列を URL エンコードに変換し、すべてのパラメーターのキーと値のペアを含む文字列を生成します。 http_build_query() 関数の構文は次のとおりです。
string http_build_query ( mixed $query_data [, string $numeric_prefix [, string $arg_separator [, int $enc_type = PHP_QUERY_RFC1738 ]]] )
この関数には 4 つのパラメータがあります。
サンプル コード
次は、配列を URL に変換するコード例です:
<?php $parameters = array( 'username' => 'myusername', 'password' => 'mypassword', 'city' => 'New York', 'state' => 'NY', ); $url_parameters = http_build_query($parameters); $url = 'http://www.example.com/login?' . $url_parameters; echo $url; ?>
この例では、連想配列 $parameters を定義します。ここで、いくつかのキーと値のペアが含まれます。次に、http_build_query() 関数を使用して配列を URL エンコードされた文字列に変換し、$url_parameters 変数に保存します。
最後に、URL に $url_parameters を追加して最終的な URL を生成し、echo 関数を使用して画面に出力します。
出力結果:
http://www.example.com/login?username=myusername&password=mypassword&city=New+York&state=NY
これは、PHP 配列を URL に変換する最も基本的な方法の 1 つです。
拡張アプリケーション
PHP 配列を URL に変換する方法を説明しました。次に、そのアプリケーションをより深く理解できるように、より高度な使用法をいくつか取り上げます。
2 番目のパラメーター numeric_prefix を使用して、パラメーター名にプレフィックスを追加できます。次の例では、配列内のパラメータ名に「data[ ]」という接頭辞を付けます。
<?php $data = array( 1 => 'foo', 2 => 'bar', 3 => 'faz' ); $query = http_build_query($data, 'data[]'); echo $query; ?>
出力結果:
data%5B%5D=foo&data%5B%5D=bar&data%5B%5D=faz
URL 内のパラメータをさらに制御したい場合は、URL を生成する前に、 urlencode() 関数はパラメータ値をエンコードします。例:
<?php $parameters = array( 'username' => 'myusername', 'password' => 'mypassword', 'city' => urlencode('New York'), 'state' => urlencode('NY'), ); $url_parameters = http_build_query($parameters); $url = 'http://www.example.com/login?' . $url_parameters; echo $url; ?>
この例では、urlencode() 関数を使用して「New York」と「NY」をエンコードし、URL に不正な文字が表示されないようにします。最終的な URL は次のようになります。
http://www.example.com/login?username=myusername&password=mypassword&city=New+York&state=NY
配列に多次元の部分配列が含まれている場合は、再帰を使用して配列全体を URL に変換できます。例:
<?php $parameters = array( 'username' => 'myusername', 'password' => 'mypassword', 'address' => array( 'city' => 'New York', 'state' => 'NY', 'zip' => '10001' ) ); function build_query_string_recursive(array $array, $prefix = null) { $query = array(); foreach($array as $key => $value) { $new_key = is_null($prefix) ? $key : sprintf('%s[%s]', $prefix, $key); if(is_array($value)) { $query[] = build_query_string_recursive($value, $new_key); } else { $query[] = sprintf('%s=%s', urlencode($new_key), urlencode($value)); } } return implode('&', $query); } $url_parameters = build_query_string_recursive($parameters); $url = 'http://www.example.com/login?' . $url_parameters; echo $url; ?>
この例では、build_query_string_recursive() 関数を使用して配列全体を URL に変換します。この関数は再帰を使用して多次元配列を処理し、すべてのキーと値のペアが URL エンコード形式に正しく変換されるようにします。
最後に、URL に $url_parameters を追加して最終的な URL を生成し、echo 関数を使用して画面に出力します。
出力結果:
http://www.example.com/login?username=myusername&password=mypassword&address[city]=New+York&address[state]=NY&address[zip]=10001
結論
PHP 配列を URL に変換することは、データの受け渡しと処理に非常に便利な方法です。この記事では、http_build_query() 関数をいくつかの実用的な例とともに紹介します。
単純な配列または多次元配列を URL に変換する必要がある場合でも、これらの例はタスクを正常に完了するのに役立ちます。読んでいただきありがとうございます。この記事がお役に立てば幸いです。
以上がPHPで配列をURLに変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。