有没有一种方法可以在给定的PHP清理或验证过滤器中传递多个过滤器标志选项?

时间:2019-05-03 13:35:14

标签: php

对于给定的文本字段数据输入,我想将ASCII字符值限制为大于31且小于128。

我了解如何为给定的消毒过滤器ID传递一个标志选项。 是否可以通过两个不冲突的标志选项?

https://www.php.net/manual/en/filter.filters.flags.php https://www.php.net/manual/en/filter.filters.sanitize.php

我尝试使用其他逗号传递其他标志。

filter_var($data, FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_LOW, FILTER_FLAG_STRIP_HIGH);

我希望能够传递两个不冲突的选项,例如FILTER_FLAG_STRIP_LOWFILTER_FLAG_STRIP_HIGH组合或FILTER_FLAG_ENCODE_LOWFILTER_FLAG_ENCODE_HIGH组合。 由于该函数的语法无效,因此无法确定结果。

1 个答案:

答案 0 :(得分:2)

您需要对标志值进行按位或(|运算符)并将其传递:

filter_var($data, FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_LOW | FILTER_FLAG_STRIP_HIGH);

来自manual

  

选项
    选项的关联数组或标志的按位析取

"bitwise disjunction"是另一种bitwise OR的表达方式。