2009-08-26 15 views
1

Zend_Filter_Inputを汎用入力フィルタとして使用することはできますか?私はすべてのフォームフィールド(ストリップタグなどをフィルタリングするためにそれを使用したいが、検証はしない)。すべての例で$バリデータ配列が含まれているようですが、途中でフィールドの名前がわかると仮定します。Zend_filter_inputスタンドアロンを使用する

プロジェクトの性質、タイムスケールなどのために、 Zend_Formを使ったフォーム。私はそこでフィルタリングを行う必要があるので、すべてのフォーム入力を処理する一般的なFormクラスがあります。

ありがとう!

ルーク。

答えて

2

$validators引数に空の配列を渡して検証をスキップし、単にフィルタリングを使用することができます。

あなたはZend_Filter_Inputインスタンスに渡すフィールド名を知らないと言っていますか?ワイルドカード* -fieldを使用して、すべての入力フィールドにフィルターを適用できます。あなたが求めているのはこれですか?

$input = new Zend_Filter_Input(array(
    '*' => 'StripTags' 
), array(), $data); 

Zend_Filter_StripTagsフィルタと$dataのすべての値をフィルタします。

はEDIT:

$escaped = $input->getEscaped(); // will be automatically run through an HTML-entities-filter 
// or 
$unescaped = $input->getUnescaped(); // the values as they come out of the filter-chain. 
+0

おかげで値を取得し、私が試した: \tパブリック静的関数zfFilterInput($入力){ \t \t \t $フィルター=配列(」 * '=> array(' StringTrim '、' HtmlEntities '、' StripTags ')); \t \t \t $ input = new Zend_Filter_Input($ filters、array()、$ input); \t \t return $ input; \t \t } が、配列することができないこと、引数3を示すエラーを取得します。データ配列をループする必要がありますか?また、クリーンなデータをどのように取得するのですか: – codecowboy

+0

変数$ inputを2回使用する際に問題があります。最初に関数の引数を$ inputとし、Zend_Filter_Inputを$ inputに代入してコードを無駄にします。 –

+0

なぜすべてをHTMLエンティティにエンコードしてからストリップタグを行うのですか? HTMLエンティティフィルタの実行後に残っているタグはありません。 –

関連する問題