filter_var数组无法正常工作

时间:2013-08-04 17:32:37

标签: php

当我尝试将它与数组一起使用时,我遇到了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));

4 个答案:

答案 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。这不是有效的网址。