Zend_Filter_StripTags的公共对象zend框架可以在整个应用程序中使用吗?

时间:2013-01-09 10:34:56

标签: zend-framework

我正在尝试在bootstrap中创建一个函数来为Zend_Filter_StripTags设置intitiate对象,这样我就可以在整个应用程序中使用它的对象。

protected function _initHtmlFilter() {  
 $allowedTags = array('p','b','br','strong'); // Allowed tags 
 $allowedAttributes = array('href'); // Allowed attributes  
 $stripTags = new Zend_Filter_StripTags($allowedTags,$allowedAttributes); 
}

但我无法在任何控制器中使用此对象($ stripTags)。

2 个答案:

答案 0 :(得分:1)

我会为此创建一个Controller Action Helper:

class My_Controller_Action_Helper_StripTags extends
    Zend_Controller_Action_Helper_Abstract
{
    /**
     * StripTags
     *
     * @param string $input String to strip tags from
     *
     * @return string String without tags
     */
    public function stripTags($input) 
    {
        $allowedTags = array('p','b','br','strong'); // Allowed tags 
        $allowedAttributes = array('href'); // Allowed attributes  
        $stripTags = new Zend_Filter_StripTags($allowedTags,$allowedAttributes);

        // return input without tags
        return $stripTags->filter($input);

    }
}


// example in indexAction
$noTags = $this->_helper->stripTags('<h2>TEST</h2>');

您必须在application.ini中添加帮助程序的路径:

resources.frontController.actionhelperpaths.My_Controller_Action_Helper_ = "My/Controller/Action/Helper"

答案 1 :(得分:0)

您可以使用zend注册表:

  protected function _initHtmlFilter() {
    $allowedTags = array('p','b','br','strong'); // Allowed tags
    $allowedAttributes = array('href'); // Allowed attributes
    $stripTags = new Zend_Filter_StripTags($allowedTags,$allowedAttributes);
    Zend_Registry::set('zend_strip_tags', $stripTags);
}

并且可以在以下任何地方访问它:

Zend_Registry::get('zend_strip_tags');