を使用するように言われる前にparse_url
、これでは十分とは言えず、バグが多すぎます。ここには、URL の解析に関する多くの質問がありますが、ほとんどすべてが特定のクラスの URL のみを解析するか、そうでなければ不完全です。
私は、ブラウザーが遭遇する可能性のあるすべての URL を確実に処理する、PHP での決定的な RFC 準拠の URL パーサーを探しています。これには、次のものが含まれます。
- ページ内リンク
#
,#title
- ページ相対 URL
blah/thing.php
- サイト相対 URL
/blah/thing.php
- 匿名プロトコル URL
//ajax.googleapis.com/ajax/libs/jquery/1.8.1/jquery.min.js
- Callto URL
callto:+442079460123
- ファイル URL
file:///Users/me/thisfile.txt
- Mailto URL
mailto:user@example.com?subject=hello
、mailto:?subject=hello
通常のすべてのスキーム/認証/ドメイン/パス/クエリ/フラグメントなどをサポートし、それらすべての要素を配列に分割し、相対/スキーマレス URL 用の追加のフラグを付けます。理想的には、同じ要素をサポートする URL 再構成子 (http_build_url など) が付属していて、検証も適用したいと考えています (つまり、URL が無効である場合に最適な解釈を行うことができるはずですが、フラグを立てる必要があります)。ブラウザと同じように)。
この回答には、そのような獣への興味をそそるフェルマー スタイルの参照が含まれていましたが、実際にはどこにも行きません。
私はすべての主要なフレームワークを調べましたが、parse_url の周りにシン ラッパーしか提供していないようです。
では、そんなものは存在するのでしょうか。