を使用するように言われる前に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 の周りにシン ラッパーしか提供していないようです。
では、そんなものは存在するのでしょうか。