我々はFILTER_VALIDATE_URL
とflagsとfilter_vars()
を使用することができます。FILTER_VALIDATE_URLにFILTER_FLAG_SCHEME_REQUIREDフラグとFILTER_FLAG_HOST_REQUIREDフラグを使用するとは何ですか?
FILTER_FLAG_SCHEME_REQUIRED
FILTER_FLAG_HOST_REQUIRED
FILTER_FLAG_PATH_REQUIRED
FILTER_FLAG_QUERY_REQUIRED
FILTER_VALIDATE_URL
はRFC 2396によれば、内部parse_url()
を使用して、スキーム(プロトコル)とホスト部分を必要とするURLとして値を検証します。
私は、このようfilter_varsを使用することができますaswellパスとクエリ部分を確認したい場合:
filter_var($url, FILTER_VALIDATE_URL, FILTER_FLAG_PATH_REQUIRED | FILTER_FLAG_QUERY_REQUIRED);
しかしFILTER_FLAG_SCHEME_REQUIRED
とFILTER_FLAG_HOST_REQUIRED
フラグの使用は何ですか?これらのフラグを指定するかどうかを問わず、ホスト部分がチェックされるかどうかは関係ありません。偽
filter_var('test1/2.html', FILTER_VALIDATE_URL, FILTER_FLAG_PATH_REQUIRED);
リターン:このような有効な相対URLをフィルタリング例えば
、。
? 'filter_var( 'test1/2.html'、FILTER_VALIDATE_URL);' falseを返しますが、その有効な相対URLはわかっています... –
あなたは正しいです。これらの2つのフラグはデフォルトでオンになっており、無効にする方法はありません。あなたが質問に書いたように、彼らは役に立たない。私はそれがバグだと思う。相対的なバグレポートがあります:https://bugs.php.net/bug.php?id=72301 –
うわー、私はそのバグだと思います。あなたの答えを更新すれば、私はそれを受け入れる準備が整います。 –