简体   繁体   English

php-filter_var()预期最多3个参数

[英]php - filter_var() expects 3 arguments max

I'm using filter_var() over my strings to sanitize them. 我在字符串上使用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() takes at most 3 arguments, but it gives so many options and I WANT ALL OF THEM!!! filter_var()最多接受3个参数,但它提供了很多选项,我想全部使用!!!

How do I do this properly? 如何正确执行此操作? The examples here: http://php.net/manual/en/filter.filters.sanitize.php don't seem to use more than one at a time. 此处的示例: http : //php.net/manual/en/filter.filters.sanitize.php似乎一次不会使用多个。

Surely someone must have wanted to strip both ASCII<32 and ASCII>127 without calling filter_var() twice at some point, right? 当然有人必须要剥离ASCII <32和ASCII> 127而不在某个时候两次调用filter_var() ,对吗? Is it as simple as doing FILTER_FLAG_STRIP_LOW & FILTER_FLAG_STRIP_HIGH? 它像执行FILTER_FLAG_STRIP_LOW和FILTER_FLAG_STRIP_HIGH一样简单吗? Or maybe using a bitwise or? 还是使用按位或?

They're bit flags - if you want to use multiple flags, you have to bitwise-OR them into a single value: 它们是位标志-如果要使用多个标志,则必须将它们按位或为单个值:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM