php - filter_var()最多需要3个参数

时间:2015-08-13 15:37:18

标签: php filter

我在我的琴弦上使用filter_var()来消毒它们。

return filter_var($str, FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_LOW, FILTER_FLAG_STRIP_HIGH, FILTER_FLAG_ENCODE_LOW, FILTER_FLAG_ENCODE_HIGH, FILTER_FLAG_ENCODE_AMP);

filter_var()最多需要3个参数,但它提供了很多选项,我想要所有这些参数!

我该如何正确地做到这一点?这里的示例:http://php.net/manual/en/filter.filters.sanitize.php似乎一次不使用多个。

当然有人必须要删除ASCII< 32和ASCII> 127而不在某个时刻调用filter_var()两次,对吧?它就像做FILTER_FLAG_STRIP_LOW& FILTER_FLAG_STRIP_HIGH?或者也许使用按位或?

1 个答案:

答案 0 :(得分:4)

它们是位标志 - 如果要使用多个标志,则必须将它们按位或将它们转换为单个值:

filter_vars($str, FILTER_SANITIZE_STRING, flag1 | flag2 | .... | flagN)
                                                ^-------^---etc...