关于PHP5中的filter_var函数:
我访问了它在:http://php.net/manual/en/filter.filters.sanitize.php的文档,但我仍然有这样的问题:
确切的区别是什么?
为了作出更简单的澄清,请提供一个例子。
发布于 2012-10-07 14:07:34
这些标志在文件的不同页中解释。
FILTER_FLAG_STRIP_LOW在数字值<32的输入中剥离字节,最显著的是空字节和其他控制字符,如ASCII铃铛。如果您打算将输入传递给使用空终止字符串的另一个应用程序,这是一个好主意。通常,在用户输入中不应该出现Unicode码点低于32的字符,除非换行符10和13。
FILTER_FLAG_STRIP_HIGH在数值>127的输入中剥离字节。在几乎每一种编码中,这些字节都表示非ASCII字符,如ä、¿、堆等。传递此标志可以是断串编码的一个带助符,它可以成为一个安全漏洞。然而,在几乎所有的用户输入中,都需要使用非ASCII字符.
概括地说:
filter_var("\0aä\x80", FILTER_SANITIZE_STRING) == "\0aä\x80"
filter_var("\0aä\x80", FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_LOW) == "aä\x80"
filter_var("\0aä\x80", FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_HIGH) == "\0a"
filter_var("\0aä\x80", FILTER_SANITIZE_STRING,
FILTER_FLAG_STRIP_LOW | FILTER_FLAG_STRIP_HIGH) == "a"发布于 2016-01-31 19:48:42
FILTER_FLAG_STRIP_LOW用ASCII值< 32删除字符
FILTER_FLAG_STRIP_HIGH用ASCII值> 127删除字符
https://stackoverflow.com/questions/12769462
复制相似问题