Web 開発では、多くの場合、PHP 配列を URI に変換する必要があります。 URI (Uniform Resource Identifier) または URL (Uniform Resource Locator) は、特定のリソースを示すために使用される文字列識別子です。多くの場合、API に渡したり、Web ページで使用したりするために、PHP 配列を URI 形式に変換する必要があります。
この記事では、PHP 配列を URI 文字列に変換して、データの受け渡しや検索クエリなどの機能を実現する方法を紹介します。
http_build_query 関数の使用は、PHP 配列を URI 形式に変換する最も簡単な方法です。この関数は、PHP 配列を URI エンコードされた文字列に変換し、次の文字列を返します:
<?php $array = array('name' => 'John Smith', 'age' => 34); $queryString = http_build_query($array); echo $queryString;
出力:
name=John+Smith&age=34
上記の例では、名前と年齢情報を含む PHP 配列を変換します。連想配列は次のとおりです。 URI形式に変換されます。 http_build_query 関数を使用すると、結果が正しい URI エンコード文字列であることを確認できます。
組み込み関数 http_build_query を使用したくない場合は、配列を手動で URI 形式に変換できます。この場合、PHP の組み込み urlencode 関数を使用して、URI 内の文字列をエンコードできます。
<?php $array = array('name' => 'John Smith', 'age' => 34); $queryString = ''; foreach($array as $key => $value){ $queryString .= urlencode($key) . '=' . urlencode($value) . '&'; } // 去掉结尾的 & $queryString = rtrim($queryString, '&'); echo $queryString;
出力:
name=John+Smith&age=34
上記の例では、foreach を使用して配列をループします。のキーと値を取得し、urlencode 関数を使用してエンコードします。各キーと値の間に等号とアンパサンドを追加し、rtrim 関数を使用して文字列の末尾のアンパサンドを削除しました。
場合によっては、RFC 3986 形式である FAX URI エンコードを使用する必要があります。この形式を使用したい場合は、http_build_query 関数を呼び出すときに 2 番目のパラメーターを PHP_QUERY_RFC3986 に設定する必要があります。
<?php $array = array('name' => 'John Smith', 'age' => 34); $queryString = http_build_query($array, '', '&', PHP_QUERY_RFC3986); echo $queryString;
出力:
name=John%20Smith&age=34
上記の例では、http_build_query 関数を使用して配列は、RFC 3986 URI エンコード形式の文字列に変換されます。スペースが としてエンコードされ、プラス記号が使用されていないことがわかります。これは、RFC 3986 で規定されている方法です。
概要
この記事では、PHP 配列を URI に変換する 3 つの方法を紹介しました。 http_build_query 関数を使用するのが最も簡単で一般的なアプローチですが、関数を手動で実装し、RFC 3986 形式を使用すると、より柔軟で制御が可能になります。いずれにしても、これらの手法を使用して、正しくフォーマットされた URI 文字列を生成し、ビジネス目的を達成できます。
以上がPHP配列をURI文字列に変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。