对于给定的文本字段数据输入,我想将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_LOW
,FILTER_FLAG_STRIP_HIGH
组合或FILTER_FLAG_ENCODE_LOW
,FILTER_FLAG_ENCODE_HIGH
组合。
由于该函数的语法无效,因此无法确定结果。
答案 0 :(得分:2)
您需要对标志值进行按位或(|
运算符)并将其传递:
filter_var($data, FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_LOW | FILTER_FLAG_STRIP_HIGH);
来自manual:
选项
选项的关联数组或标志的按位析取
"bitwise disjunction"
是另一种bitwise OR
的表达方式。