我在检查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_var
与FILTER_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