检查URI PHP

时间:2018-11-14 16:05:57

标签: php preg-match uri

我在检查URI时遇到问题。我想创建一个将接受此类URI的模式:

?name=key&name=key
#anchor

foo?name=key&name=key
foo#anchor

foo/bar/*
foo/bar?name=key&name=key
foo/bar#anchor

此刻我有这样的东西:

$path = 'foo';
$uri = 'foo/bar/bb';
preg_match('/^('.$path.'[^\w])[\/\w\S]+$/i', $uri);
// OR
preg_match('/^('.$path.'|'.$path.'(\?|#)[\w\S\=\.&%-]+)$/i', $uri);

我想以某种方式简化它。预先感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

如果您获得完整的url,那么它将起作用。 您可以将filter_varFILTER_VALIDATE_URL

一起使用

摘要

$url = "https://stackoverflow.com/questions/53304342/checking-the-uri-php";
if (filter_var($url, FILTER_VALIDATE_URL)) {
    echo "$url is a valid URL";
} else {
    echo"$url is not a valid URL";
}

实时demo
filter_var