PHP验证URI。

4

我希望在PHP中验证URI(不仅仅是URL),但找不到任何方法来实现。

PHP确实有parse_url(),但它不适用于URI,找到一种适当的方式来验证URI结构将非常有帮助,例如以下内容:

content://com.example.provider/articles/?optional=queries

1
好的,它起作用了,谢谢@Skully - Amitoj
1
我认为parse_url对这样的值处理得还不错,https://3v4l.org/rKN3J - CBroe
3个回答

5

要验证 URI,可以在 PHP 中使用 FILTER_VALIDATE_URL 过滤器和 filter_var() 函数。

$uri = "content://com.example.provider/articles/?optional=queries"

if (filter_var($uri, FILTER_VALIDATE_URL)) {
    // Valid URI, do something here.
}

1

还需要进行过滤,以删除非法字符。

$url = "http://www.google.com"; 
// Remove all illegal characters from a url
$url = filter_var($url, FILTER_SANITIZE_URL);

// Validate url
if (filter_var($url, FILTER_VALIDATE_URL)) {
    echo("$url is a valid URL");
} else {
    echo("$url is not a valid URL");
} 

在这里,URL必须具有查询字符串才能有效:

$url = "https://www.w3schools.com";

(注意:保留HTML标签)
if (filter_var($url, FILTER_VALIDATE_URL, FILTER_FLAG_QUERY_REQUIRED)) {
    echo("$url is a valid URL");
} else {
    echo("$url is not a valid URL");
}

1
您可以尝试下面的代码:
$url = "http://www.google.com";
if (!filter_var($url, FILTER_VALIDATE_URL) === false) {
    echo("$url is a valid URL");
} else {
    echo("$url is not a valid URL");
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接