【发布时间】:2015-05-11 23:25:09
【问题描述】:
出于某种奇怪的原因,我使用 FILTER_VALIDATE_URL 检查 url 的 if 语句返回了意外的结果。
https://www.google.nl/ 之类的简单内容已被阻止,但 www.google.nl/ 不是?它也不喜欢它阻止每个带有 http 或 https 的 URL。有些是允许的,有些是不允许的,我知道有很多主题,但其中大多数都使用正则表达式来过滤 url。这比使用 FILTER_VALIDATE_URL 更好吗?还是我做错了什么?
我用来检查网址的代码是这样的
if (!filter_var($linkinput, FILTER_VALIDATE_URL) === FALSE) {
//error code
}
【问题讨论】:
-
=== FALSE的目的是什么?而是检查字符串长度。再举几个失败的例子。 (顺便说一句,FILTER_VALIDATE_URL 本身就是一个正则表达式。) -
FILTER_VALIDATE_URL 有 a lot of problems 需要修复。此外,docs describing the flags 不反映 actual source code 对某些标志的引用已被完全删除。更多信息:news.php.net/php.internals/99018
标签: php regex validation