【发布时间】:2023-04-01 05:45:01
【问题描述】:
我正在尝试使用 filter_var 来验证用户输入的 URL,但它似乎并非在所有情况下都有效。我已请求对此some time ago on PHP.net 进行修复,但无济于事。
除了正则表达式(是的,stackoverflow 上已经发布了一些)之外,是否有可以工作的 PHP 版本或任何其他方法?
我面临的问题是以下字符串得到验证,这不应该:
http://http://www.google.com
测试脚本:
$url = $_REQUEST['url'];
if (filter_var("http://" . $url, FILTER_VALIDATE_URL))
$filter="true";
else
$filter="false";
echo "Filter var result of concat with http is:" . $filter . "<br>";
预期结果:
我希望当我使用 http://www.google.com 运行脚本时它返回 false,而当我使用 www.google.com 运行它时返回 true
实际结果:
两种情况都返回真
【问题讨论】:
-
您的
filter_var代码是什么样的? -
您在哪里请求修复此行为?
-
它是 bugs.php.net/bug.php?id=64173 。电子邮件哈希匹配。