现在位置: 首页 > PHP 教程 > 正文

PHP FILTER_VALIDATE_URL 过滤器


PHP Filter 参考手册 完整的 PHP Filter 参考手册

实例

判断 URL 格式是否正确:

<?php
$url = "https://www.runoob.com";

if (filter_var($url, FILTER_VALIDATE_URL)) {
    echo("$url 是正确的 URL");
} else {
    echo("$url 是错误的 URL");
}
?>

执行以上代码输出结果为:

https://www.runoob.com 是正确的 URL

定义和用法

FILTER_VALIDATE_URL 过滤器把值作为 URL 来验证。

  • Name: "validate_url"
  • ID-number: 273

可能的标志:

  • FILTER_FLAG_SCHEME_REQUIRED - 要求 URL 是 RFC 兼容 URL(比如 http://runoob)
  • FILTER_FLAG_HOST_REQUIRED - 要求 URL 包含主机名(比如 http://www.runoob.com)
  • FILTER_FLAG_PATH_REQUIRED - 要求 URL 在域名后存在路径(比如 www.runoob.com/example1/test2/)
  • FILTER_FLAG_QUERY_REQUIRED - 要求 URL 存在查询字符串(比如 "example.php?name=Peter&age=37")

实例

以下实力删除变量 $url 中的非法字符,然后检查它是否是有效的 URL:

实例

<?php
$url = "https://www.runoob.com";

// 删除 url 中的非法字符
$url = filter_var($url, FILTER_SANITIZE_URL);

// 验证 URL
if (filter_var($url, FILTER_VALIDATE_URL)) {
    echo("$url 是正确的 URL");
} else {
    echo("$url 是错误的 URL");
}
?>

代码的输出如下所示:

https://www.runoob.com 是正确的 URL

以下查看 URL 是否包含有效的查询字符串:

实例

<?php
// 不带参数 URL
$url = "https://www.runoob.com";

if (filter_var($url, FILTER_VALIDATE_URL, FILTER_FLAG_QUERY_REQUIRED)) {
    echo("$url 是正确的 URL");
} else {
    echo("$url 是错误的 URL");
}

echo PHP_EOL; // 换行符

// 带参数 URL
$url2 = "https://www.runoob.com?s=php";

if (filter_var($url2, FILTER_VALIDATE_URL, FILTER_FLAG_QUERY_REQUIRED)) {
    echo("$url2 是正确的 URL");
} else {
    echo("$url2 是错误的 URL");
}
?>

代码的输出如下所示:

https://www.runoob.com 是错误的 URL
https://www.runoob.com?s=php 是正确的 URL


PHP Filter 参考手册 完整的 PHP Filter 参考手册