当我尝试将它与数组一起使用时,我遇到了filter_var的麻烦。
为什么会这样
$var = array("http://getbootstrap.com/css/","http://getbootstrap.com/css/");
var_dump(filter_var($var, FILTER_VALIDATE_URL));
返回
bool(false)
这将返回string(28) "http://getbootstrap.com/css/"
(这意味着它是一个有效的网址):
$var = "http://getbootstrap.com/css/";
var_dump(filter_var($var, FILTER_VALIDATE_URL));
答案 0 :(得分:6)
有一个filter_var_array,请尝试
$var = array("http://getbootstrap.com/css/","http://getbootstrap.com/css/");
var_dump(filter_var_array($var, FILTER_VALIDATE_URL));
答案 1 :(得分:1)
要对数组中的所有元素应用过滤器,您应该使用filter_var_array
代替。
答案 2 :(得分:0)
您无法在阵列上使用filter_var
。你必须这样做:
$result = true;
foreach($var as $elem) {
$result = $result && filter_var($elem, FILTER_VALIDATE_URL);
}
另一种解决方案是使用filter_var_array
。
答案 3 :(得分:0)
一切都很好,因为filter_var()
一次只过滤一个值。您传递了array()
,然后将其转换为字符串,结果为Array
。这不是有效的网址。