0

現在、英数字のみをフィルタリングしようとしています。したがって、私は次のZend関数を試しました。

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

これは実際には驚くべきことですが、問題はここにあります。文字を空白に置き換える必要があります。たとえば、「He​​l#o wor * d」と入力すると、「Heloword」である必要があります。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 に答える