【发布时间】:2015-03-20 22:28:23
【问题描述】:
我正在创建一个处理重定向到外部位置的类。我创建了一个名为isBlocked 的方法,它返回一个布尔结果。该函数的工作原理如下:
它遍历$_blocked 变量并比较是否找到输入字符串,是否返回true,否则返回false。贝娄是实际情况,以防我的解释不够。
public static function isBlocked($location)
{
for($i = 0; $i < sizeof(self::$_blocked); $i++)
{
if(self::$_blocked[$i] === $location)
{
return true;
}
else
{
return false;
}
}
}
这很好用,例如,当“google.com”在列表中并且输入是“www.google.com”时,问题就出现了,它将返回 false。这很明显,因为我使用了相同的运算符 ===。
问题如下:PHP 中除了url_encode 和url_decode 之外,还有什么函数可以处理URLS?我显然可以创建一个正则表达式,但如果有其他方法,请告诉我。
提前致谢。
【问题讨论】:
-
是否允许任何站点的域中的任何子域?如果是这样,那么只需取消并仅使用域和 TLD 部分。如果没有,那么您应该添加允许的子域。您也可以创建某种通配符匹配,但这可能是您的正则表达式。
-
我知道 filter_var($string, FILTER_VALIDATE_URL) 验证字符串是否是有效的 url
-
@Jacinto 是 filter_var 将验证。但目标不验证)
-
@JaredFarrish,感谢您的链接