使用filter_var来清理字符串

时间:2011-12-08 05:19:26

标签: php string sanitization

http://www.php.net/manual/en/filter.filters.flags.php

如何使用此函数将字符串简化为a-z,数字和_?

2 个答案:

答案 0 :(得分:2)

您必须使用回调过滤器并编写函数

function my_filter($value)
{
    return preg_replace('/[^a-z\d_]/iu', '', $value);
}
$var = filter_var($var, FILTER_CALLBACK, array('options' => 'my_filter'));

如果您只想在过滤的var中使用小写字母,请从正则表达式中删除“i”标记。

当然,使用filter_var只是在这里多余的代码。这个更短。

$var = preg_replace('/[^a-z\d_]/iu', '', $var);

答案 1 :(得分:2)

显然你做不到。因为你问的实际上是介于65到90和97到122之间的东西。过滤器将剥离数字值小于32且大于127的字符。你应该使用正则表达式。