6

filter_var()がこの URL を受け入れて検証するのはなぜhttp://http://www.google.comですか?

$website = "http://http://www.google.com";

echo filter_var($website, FILTER_VALIDATE_URL); // This outputs the value of $website

これは間違っていると思います。これに対する解決策または修正はありますか?

phpinfo()

ここに画像の説明を入力

4

1 に答える 1

2

PHP にバグが見つかったようです。PHP マニュアルには、FILTER_VALIDATE_URL がhttp://www.faqs.org/rfcs/rfc2396.htmlに従って URI を検証すると記載されています。

仕様を読むと、PHP は明らかにガイドラインに従って適切に検証できません。具体的には、セクション 3 (URI 構文コンポーネント) で、スキーム (あなたの場合は http) は 1 回だけ存在し、URI の唯一のコロンの前にあると定義されています。

このバグはhttps://bugs.php.net/で報告してください。

頑張って見つけてね!

于 2013-06-27T03:00:01.853 に答える