0

我目前正在尝试仅过滤字母数字字符。因此,我尝试了以下 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”。Aslo 我已经尝试过 php str_replace 函数,它实际上很好,但我必须在那里定义大量无效字符。任何人都可以告诉我如何轻松做到这一点吗?

4

2 回答 2

2

你可以通过使用preg_replace() 函数来做到这一点

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

输出 -

Hel o wor d
于 2012-11-20T06:50:15.847 回答
0

您可以为编写自定义过滤器创建一个自 定义过滤器

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

于 2012-11-20T08:14:04.627 回答