正在检查URI PHP



我在检查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])[/wS]+$/i', $uri);
// OR
preg_match('/^('.$path.'|'.$path.'(?|#)[wS=.&%-]+)$/i', $uri);

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

如果您获得完整的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";
}

现场演示
filter_var

最新更新