parse_urlURL を解釈し、その構成要素を返す 説明
intstringarraynullfalse parse_url(string
$url, int $component = -1)この関数は、URL の様々な構成要素のうち特定できるものに関して 連想配列にして返します。 連想配列に含まれる要素の値は、URLデコード されません。 この関数は、指定された URL が有効かどうかを調べるためのもの ではなく、単に URL を以下で示す 要素に分解するだけのものです。不完全、かつ不正な URL であっても受け入れますし、 そのような場合でも parse_url は可能な限り 正しく解析しようとします。 警告
この関数は、確立された URI や URL の標準仕様に準拠していません。 相対 URL や不正な形式の URL に対しては、 誤った結果や意味をなさない結果を返します。 有効な URL であっても、異なる URL パーサーの結果と一致しないことがあります。 これは、異なるユースケースを対象とし、要件が異なる URL 関連の標準仕様が複数存在するためです。 異なる URL 標準に従うパーサーで URL を処理することは、 セキュリティ上の脆弱性の一般的な原因です。 たとえば、パーサー A で URL のホスト名を許可リストに照らして検証しても、 リソースの実際の取得にホスト名の抽出方法が異なるパーサー B が使われる場合、 その検証は無効になる可能性があります。 Uri\Rfc3986\Uri クラスと Uri\WhatWg\Url クラスは、それぞれ RFC 3986 と WHATWG URL 標準に厳密に従います。 新しく書くすべてのコードでこれらのクラスを使用し、 parse_url 関数の既存の使用箇所もこれらのクラスに 移行することを強く推奨します。 ただし、互換性の理由から parse_url の挙動を 維持する必要がある場合を除きます。 パラメータ
戻り値
完全におかしな形式の URL については、parse_url は
http://example.com/foo → query = null, fragment = null http://example.com/foo? → query = "", fragment = null http://example.com/foo# → query = null, fragment = "" http://example.com/foo?# → query = "", fragment = ""
8.0.0 より前のバージョンでは、上記の場合は query も fragment も共に
URL の各要素(コンポーネント) に含まれる制御文字
(ctype_cntrl も参照ください) は、
アンダースコア ( 変更履歴
例
例1 parse_url の例 上の例の出力は以下となります。
array(8) {
["scheme"]=>
string(4) "http"
["host"]=>
string(8) "hostname"
["port"]=>
int(9090)
["user"]=>
string(8) "username"
["pass"]=>
string(8) "password"
["path"]=>
string(5) "/path"
["query"]=>
string(9) "arg=value"
["fragment"]=>
string(6) "anchor"
}
string(4) "http"
string(8) "username"
string(8) "password"
string(8) "hostname"
int(9090)
string(5) "/path"
string(9) "arg=value"
string(6) "anchor"
例2 parse_url でスキームを省略した例 上の例の出力は以下となります。
array(3) {
["host"]=>
string(15) "www.example.com"
["path"]=>
string(5) "/path"
["query"]=>
string(17) "googleguy=googley"
}
注意
|