http_build_query は、urlencode の後にリクエスト文字列を作成できます。
string http_build_query ( mixed $query_data [, string $numeric_prefix [, string $arg_separator [, int $enc_type = PHP_QUERY_RFC1738 ]]] )
パラメータ:
query_data
配列または属性を含むオブジェクトを指定できます。
query_data 配列は、単純な 1 次元構造にすることも、配列で構成される配列 (他の配列を含むこともできる) にすることもできます。
query_data がオブジェクトの場合、パブリック属性のみが結果に追加されます。
numeric_prefix
基になる配列で数値添字が使用され、このパラメーターが指定された場合、パラメーター値は基になる配列の数値として使用されます。 array 添字付き要素の接頭辞。
これは、後でデータをデコードするときに、PHP またはその他の CGI プログラムが正当な変数名を取得できるようにするためです。
arg_separator
このパラメータを指定して使用しない限り、arg_separator.output がパラメータを区切るために使用されます (このパラメータは php.ini にあり、デフォルトは「&」です)。
enc_type
デフォルトは PHP_QUERY_RFC1738 です。
enc_type が PHP_QUERY_RFC1738 の場合、エンコードは » RFC 1738 標準および application/x-www-form-urlencoded メディア タイプに従ってエンコードされ、スペースはプラス記号 ( ) としてエンコードされます。
enc_type が PHP_QUERY_RFC3986 の場合、» RFC 3986 に従ってエンコードされ、スペースはパーセント エンコードされます ( )。
例 1: query_data パラメーターのみを使用します
<?php$data = array( 'name' => 'fdipzone', 'gender' => 'male', 'profession' => 'programmer', 'explain' => 'a new programmer');echo http_build_query($data);?>
出力: name=fdipzone&gender=male&profession=programmer&explain=a new programmer
##例 2: query_data は 1 次元の添え字配列を使用し、numeric_prefix=info_,arg_separator=#,enc_type=PHP_QUERY_RFC3986
<?php$data = array('fdipzone','male','programmer','a new programmer');echo http_build_query($data, 'info_', '#', PHP_QUERY_RFC3986);?>を指定します。
Output:
info_0=fdipzone#info_1=male#info_2=programmer#info_3=a%20new%20programmer
mixed parse_url ( string $url [, int $component = -1 ] )
パラメータ:
url 解析する URL。無効な文字は _
##component# に置き換えられます。 ## PHP_URL_PATH、PHP_URL_QUERY、または PHP_URL_FRAGMENT のいずれかを使用して、URL の指定された部分の文字列を取得します。 (PHP_URL_PORT として指定された場合を除き、整数値が返されます)。
戻り値:
著しく修飾されていない URL の場合、parse_url() は FALSE を返す場合があります。 返されるデータには、通常、次の
スキーム (http など)、ホスト、ポート、ユーザー、パス、パス、クエリ (疑問符の後?)、フラグメント (ハッシュ記号 # の後) が含まれます。
例:
<?php$url = 'http://fdipzone:123456@www.fdipzone.com:80/test/index.php?id=1#tag'; print_r(parse_url($url));echo parse_url($url, PHP_URL_SCHEME).PHP_EOL;echo parse_url($url, PHP_URL_HOST).PHP_EOL;echo parse_url($url, PHP_URL_PORT).PHP_EOL;echo parse_url($url, PHP_URL_USER).PHP_EOL;echo parse_url($url, PHP_URL_PASS).PHP_EOL;echo parse_url($url, PHP_URL_PATH).PHP_EOL;echo parse_url($url, PHP_URL_QUERY).PHP_EOL;echo parse_url($url, PHP_URL_FRAGMENT).PHP_EOL;?>出力:
Array( [scheme] => http [host] => www.fdipzone.com [port] => 80 [user] => fdipzone [pass] => 123456 [path] => /test/index.php [query] => id=1 [fragment] => tag ) http www.fdipzone.com80fdipzone123456/test/index.php id=1tag3.parse_str
void parse_str ( string $str [, array &$arr ] )
str
入力文字列
2 番目の変数 arr が設定されている場合、変数は置換として配列要素としてこの配列に格納されます。 例 1:
現在のスコープに解決
<?php$str = 'name=fdipzone&gender=male&profession=programer&explain=a new programmer'; parse_str($str);echo $name.PHP_EOL;echo $gender.PHP_EOL;echo $profession.PHP_EOL;echo $explain.PHP_EOL;?>出力:
fdipzone male programera new programmer例 2:
結果を arr 配列に保存します
<?php$str = 'name=fdipzone&gender=male&profession=programer&explain=a new programmer'; parse_str($str, $arr); print_r($arr);?>出力:
Array( [name] => fdipzone [gender] => male [profession] => programer [explain] => a new programmer )4. URL のクエリ パラメーターを取得して解析します
<?php$url = 'http://www.fdipzone.com/test/index.php?name=fdipzone&gender=male&profession=programmer&explain=a new programmer';$query = parse_url($url, PHP_URL_QUERY); parse_str($query, $data); print_r($data);?>
出力:
Array( [name] => fdipzone [gender] => male [profession] => programmer [explain] => a new programmer )この記事では、http_build_query の使用方法について説明します。 parse_url、parse_str を使用して URL を作成および解析します。その他の関連コンテンツについては、php 中国語 Web サイトに注意してください。 関連する推奨事項:
html5 を使用してシェイク関数を実装する方法
MySql メソッドを使用して auto_increment を表示および変更する方法
php を通じて Web デスクトップへのショートカットを生成する方法
以上がhttp_build_query、parse_url、parse_str を使用して、php を通じて URL を作成および解析する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。