phpのfilter_var($url, FILTER_VALIDATE_URL)を調査する

2021年8月7日PHPPHP,URLかどうか,判別,判定,検証

+2

PHPで文字列がURL形式かどうかを判別するのによく使われる、filter_var($url, FILTER_VALIDATE_URL)について検証しました。

公式ドキュメントにはrfc2396に準拠しているかのチェックをしていると書いてありますがよくわからないので動かして確認してみることにしました。

Psy Shell v0.9.9 (PHP 7.4.11 — cli) by Justin Hilemanの場合、、、

コード

$urls = [
    "あ",
    "12345678",
    "α",
    "漢字",
    "http://www.hoge/",
    "http://www.hoge/あ",
    "http://www.hoge/12345678",
    "http://www.hoge/α",
    "http://www.hoge/漢字",
];

foreach ($urls as $url) {​
    if (filter_var($url, FILTER_VALIDATE_URL)) {​
        echo("'$url' is OK URL\n");
    } else {​
        echo("'$url' is NG URL\n");
    }
}

結果

'あ' is NG URL
'12345678' is NG URL
'α' is NG URL
'漢字' is NG URL
'http://www.hoge/' is OK URL
'http://www.hoge/あ' is NG URL
'http://www.hoge/12345678' is OK URL
'http://www.hoge/α' is NG URL
'http://www.hoge/漢字' is NG URL

となりました。以上!
この文字列を試して欲しいとかあればコメントください!

+2

Posted by riku