1

当我尝试将它与数组一起使用时,我遇到了 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/"(这意味着它是一个有效的 URL):

$var = "http://getbootstrap.com/css/";
var_dump(filter_var($var, FILTER_VALIDATE_URL));
4

4 回答 4

9

有一个filter_var_array,试试

$var = array("http://getbootstrap.com/css/","http://getbootstrap.com/css/");
var_dump(filter_var_array($var, FILTER_VALIDATE_URL));
于 2013-08-04T17:37:04.640 回答
1

要对数组中的所有元素应用过滤器,您应该filter_var_array改用。

于 2013-08-04T17:37:00.613 回答
0

您不能filter_var在数组上使用。你必须这样做:

$result = true;
foreach($var as $elem) {
     $result = $result && filter_var($elem, FILTER_VALIDATE_URL);
}

另一种解决方案是使用filter_var_array.

于 2013-08-04T17:34:56.247 回答
0

一切都很好,因为filter_var()一次只过滤一个值。您传递array()了然后将其转换为字符串,从而导致Array. 这不是有效的 URL。

于 2013-08-04T17:36:43.837 回答