无效字符替换为空格

时间:2012-11-20 06:41:11

标签: php zend-framework replace

我目前正在尝试仅过滤字母数字字符。因此,我尝试了以下Zend函数,

$filter = new Zend_Filter_Alnum(array('allowwhitespace' => true));
$return = $filter->filter('This is (my) content: 123');

这实际上很神奇,但问题是在这里我需要用空格替换字符。例如,如果我输入“Hel#o wor * d”,它必须是“Hel o wor d”。我已经尝试过php str_replace函数它实际上很好,但我要定义大量无效字符。有什么可以告诉我如何轻松地做到这一点吗?

2 个答案:

答案 0 :(得分:2)

您可以使用preg_replace()功能

来完成
<?php 
  $someone = "Hel#o wor*d";
  echo  preg_replace('/[\s\W]+/',' ',$someone); 
 ?>

输出 -

Hel o wor d

答案 1 :(得分:0)

您可以为Writing Custom Filters

创建自定义过滤器

**根据您的要求,复制Zend字母数字适配器(Zend_Filter_Alnum)并将preg_replace($pattern, '', (string) $value);(第144行)替换为
preg_replace($pattern, ' ', (string) $value);