PHP FILTER_VALIDATE_URL 过滤器
完整的 PHP Filter 参考手册
实例代码
判断 URL 格式是否正确:
<?php
$url = "https://www.haodaima.com";
if (filter_var($url, FILTER_VALIDATE_URL)) {
echo("$url 是正确的 URL");
} else {
echo("$url 是错误的 URL");
}
?>
$url = "https://www.haodaima.com";
if (filter_var($url, FILTER_VALIDATE_URL)) {
echo("$url 是正确的 URL");
} else {
echo("$url 是错误的 URL");
}
?>
执行以上代码输出结果为:
https://www.haodaima.com 是正确的 URL
定义和用法
FILTER_VALIDATE_URL 过滤器把值作为 URL 来验证。
- Name: "validate_url"
- ID-number: 273
可能的标志:
- FILTER_FLAG_SCHEME_REQUIRED - 要求 URL 是 RFC 兼容 URL(比如 http://haodaima)
- FILTER_FLAG_HOST_REQUIRED - 要求 URL 包含主机名(比如 https://www.haodaima.com)
- FILTER_FLAG_PATH_REQUIRED - 要求 URL 在域名后存在路径(比如 www.haodaima.com/example1/test2/)
- FILTER_FLAG_QUERY_REQUIRED - 要求 URL 存在查询字符串(比如 "example.php?name=Peter&age=37")
以下实力删除变量 $url 中的非法字符,然后检查它是否是有效的 URL:
实例代码
<?php
$url = "https://www.haodaima.com";
// 删除 url 中的非法字符
$url = filter_var($url, FILTER_SANITIZE_URL);
// 验证 URL
if (filter_var($url, FILTER_VALIDATE_URL)) {
echo("$url 是正确的 URL");
} else {
echo("$url 是错误的 URL");
}
?>
$url = "https://www.haodaima.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.haodaima.com 是正确的 URL
以下查看 URL 是否包含有效的查询字符串:
实例代码
<?php
// 不带参数 URL
$url = "https://www.haodaima.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.haodaima.com?s=php";
if (filter_var($url2, FILTER_VALIDATE_URL, FILTER_FLAG_QUERY_REQUIRED)) {
echo("$url2 是正确的 URL");
} else {
echo("$url2 是错误的 URL");
}
?>
// 不带参数 URL
$url = "https://www.haodaima.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.haodaima.com?s=php";
if (filter_var($url2, FILTER_VALIDATE_URL, FILTER_FLAG_QUERY_REQUIRED)) {
echo("$url2 是正确的 URL");
} else {
echo("$url2 是错误的 URL");
}
?>
代码的输出如下所示:
https://www.haodaima.com 是错误的 URL https://www.haodaima.com?s=php 是正确的 URL
完整的 PHP Filter 参考手册