Я не уверен, как этот фильтр должен работать, так как это не ясно из вашего вопроса.Во всяком случае, я сделал некоторый пользовательский фильтр, который будет проверять, равно ли значение входного поля некоторому $ токену.Если они равны, входное значение будет пустой строкой.
Фильтр выглядит следующим образом:
// file: APPLICATION_PATH/filters/Identical.php
class My_Filter_Identical implements Zend_Filter_Interface {
/**
* Token with witch input is compared
*
* @var string
*/
protected $_token;
/**
* Set token
*
* @param string
* @return void
*/
public function __construct($token = '') {
$this->_token = $token;
}
/**
* Filtering method
*
* @param string $value value of input filed
* @return string
*/
public function filter($value) {
if ($value !== $this->_token) {
return $value;
}
return '';
}
}
Чтобы применить его к заданному элементу формы:
require_once (APPLICATION_PATH . '/filters/Identical.php');
$el1->addFilter(new My_Filter_Identical('test'));
Конечно, вместо require_once его можно добавить в ваш автозагрузчик ресурсов, но в качестве примера я думаю, что он сейчас не нужен.
Edit:
Забыл упомянуть фильтр pregReplace.То же самое, что делает пользовательский фильтр выше, может быть сделано с помощью фильтра pregReplace:
$el1->addFilter('pregReplace',array('/test/',''));
Но, как я уже сказал, я не уверен, как вы хотите, чтобы ваш фильтр работал.Если вы предоставите больше информации, возможно, я мог бы помочь больше.