Web 開発では、ページ間のデータ転送や API インターフェイス リクエストでのパラメーター転送のために、配列を URL パラメーター文字列に変換する必要があることがよくあります。 PHP では、いくつかの組み込み関数を使用して、配列と URL パラメーター文字列の間で変換を行うことができます。次に、この機能を実現するための一般的な方法をいくつか紹介します。
1. 配列を URL パラメーター文字列に変換する
http_build_query() 関数は、配列を URL に変換できます。パラメータ文字列。この関数の構文は次のとおりです。
string http_build_query ( mixed $query_data , string $numeric_prefix = "" , string $arg_separator = "" , int $enc_type = PHP_QUERY_RFC1738 )
このうち、query_data パラメータは変換対象のデータを含む連想配列または数値インデックス配列で、numeric_prefix パラメータは数値パラメータに必要なオプションの文字列プレフィックスです。インデックス配列。デフォルトは空です。文字列、arg_separator パラメータはオプションのパラメータ区切り文字、デフォルト値は「&」、enc_type パラメータはオプションの文字列形式、デフォルトは PHP_QUERY_RFC1738 です。
サンプル コード:
<?php $data = array( 'user' => 'admin', 'email' => 'admin@example.com', 'age' => 18 ); $query_string = http_build_query($data); echo $query_string; ?>
出力結果は次のとおりです:
user=admin&email=admin%40example.com&age=18
サンプル コード:
<?php $data = array( 'user' => 'admin', 'email' => 'admin@example.com', 'age' => 18 ); $query_string = http_build_query($data, 'id_', '|'); echo $query_string; ?>
出力結果は次のとおりです:
id_user=admin|id_email=admin%40example.com|id_age=18
urlencode() 関数は、URL パラメータ文字列と特殊文字をエンコードできます。サンプルコード:
<?php $data = array( 'user' => 'admin', 'email' => 'admin@example.com', 'age' => 18 ); $query_string = http_build_query($data); $query_string = urlencode($query_string); echo $query_string; ?>
出力結果は:
user%3Dadmin%26email%3Dadmin%2540example.com%26age%3D18
2. URL パラメータ文字列を配列に変換します
parse_str() 関数は、URL パラメータ文字列を解析して連想配列に変換できます。サンプル コード:
出力結果は次のとおりです:
Array ( [user] => admin [email] => admin@example.com [age] => 18 )
http_build_query() 関数がURL パラメータの生成には使用されません。文字列は、explode() 関数を使用して手動で解析することもできます。サンプルコード:
出力結果:
Array ( [user] => admin [email] => admin@example.com [age] => 18 )
3. まとめ
上記は、PHP配列をURLパラメータ文字列に変換し、URLパラメータ文字列を変換する処理です。配列メソッドに変換します。実際の開発では、これらのメソッドを柔軟に利用して、APIインターフェースリクエストにおけるデータ転送やパラメータ転送を実現できます。
以上がPHPで配列とURLパラメータ文字列の間で変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。