現在の URL は php を通じて取得されます。URL 内のパラメーターを抽出する必要がある場合はどうすればよいですか?このプロセスは実際には非常に単純で、PHP の 2 つの組み込み関数、つまり parse_url 関数と parse_str 関数を使用して正常に完了できます。以下では、これら 2 つの関数について簡単に説明し、例を使用して URL 内のパラメーターを抽出する方法を説明します。
(1) parse_url (PHP 4、PHP 5) — URL を解析し、そのコンポーネントを返す関数のプロトタイプは次のとおりです:
mixed parse_url ( string $url [, int $component = -1 ] )
これこの関数は URL を解析し、URL に含まれるさまざまなコンポーネントを含む連想配列を返します。
この関数は、指定された URL の有効性を検証するために使用されるのではなく、URL を以下にリストされている部分に分割するために使用されます。不完全な URL も受け入れられ、parse_url() はそれらをできるだけ正確に解析しようとします。
パラメータの説明
url 解析する URL。無効な文字は_に置き換えられます。
コンポーネント PHP_URL_SCHEME、PHP_URL_HOST、PHP_URL_PORT、PHP_URL_USER、PHP_URL_PASS、PHP_URL_PATH、PHP_URL_QUERY、または PHP_URL_FRAGMENT のいずれかを指定して、URL の指定された部分の文字列を取得します。 (PHP_URL_PORT として指定された場合を除き、整数値が返されます)。
戻り値
著しく修飾されていない URL の場合、parse_url() は FALSE を返す場合があります。
コンポーネントパラメータが省略された場合、連想配列配列が返され、現在少なくとも 1 つの要素が配列内に存在します。配列内の可能なキーは次のとおりです:
scheme - http
host
port
user
pass
path
query - 疑問符の後?
fragment - ハッシュ記号の後 #
コンポーネントパラメータが指定されている場合、parse_url( ) は、配列の代わりに文字列 (または PHP_URL_PORT として指定されている場合は整数) を返します。 URL 内に指定されたコンポーネントが存在しない場合は、NULL が返されます。
(2) parse_str - クエリ文字列を変数に解析します。関数のプロトタイプは次のとおりです:
parse_str(string,array)
パラメータの説明
string が必要です。解析する文字列を指定します。
配列 オプション。変数を格納する配列の名前を指定します。このパラメータは、変数を配列に格納するように指示します。配列パラメータが設定されていない場合、この関数によって設定された変数は、同じ名前ですでに設定されている変数を上書きします。
注: php.ini の magic_quotes_gpc 設定は、この関数の出力に影響します。有効にすると、変数は parse_str() によって解析される前に addslashes() によって変換されます。
(3) URL内のパラメータを抽出する具体例は以下の通りです:
<?php $url='http://www.phpernote.com/ad.php?id=325&action=index&page=3'; $urlarr=parse_url($url); parse_str($urlarr['query'],$parr); print_r($urlarr); print_r($parr);
結果は以下の通りです:
Array
(
[scheme] => http
[host] => www. phpernote.com
[パス] = > /ad.php
[クエリ] => id=325&action=index&page=3
)
配列
(
[id] => 325
[アクション] =>
[page] => 3
)
上記の内容は、PHP で URL (parse_url) パラメーターを配列 (parse_str) に解析する方法に関するチュートリアルです。
関連する推奨事項:
php 解析 url の 3 つの例_PHP チュートリアル
以上がparse_url パラメータを配列 parse_str に解析する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。