zoukankan      html  css  js  c++  java
  • Yii-CHtmlPurifier- 净化器的使用(yii过滤不良代码)

    1. 在控制器中使用:

    public function actionCreate()  
    {  
        $model=new News;  
          
        $purifier = new CHtmlPurifier();  
        $purifier->options = array(  
            'URI.AllowedSchemes'=>array(  
                                'http' => true,  
                               'https' => true,  
            ),  
                  'HTML.Allowed'=>'div',  
        );  
      
        if(isset($_POST['News']))  
        {     
            $model->attributes=$_POST['News'];  
            $model->attributes['content'] = $purifier->purify($model->attributes['content']);  
            if($model->save())  
                $this->redirect(array('view','id'=>$model->id));  
        }  
    }  
    

      

    2. 在模型中的使用:

    protected function beforeSave()  
    {  
        $purifier = new CHtmlPurifier();  
        $purifier->options = array(  
            'URI.AllowedSchemes'=>array(  
                                'http' => true,  
                               'https' => true,  
            ),  
                  'HTML.Allowed'=>'div',  
        );  
      
        if(parent::beforeSave()){  
            if($this->isNewRecord){  
                $this->create_data = date('y-m-d H:m:s');  
                $this->content = $purifier->purify($this->content);  
            }  
            return true;  
        }else{  
            return false;  
        }  
    }  
    

      

    3. 在过滤器中的使用:

    public function filters()  
    {  
        return array(  
            'accessControl', // perform access control for CRUD operations  
            'postOnly + delete', // we only allow deletion via POST request  
            'purifier + create', //载入插入页面时进行些过滤操作  
        );  
    }  
      
    public function filterPurifier($filterChain){  
        $purifier = new CHtmlPurifier();  
        $purifier->options = array(  
            'URI.AllowedSchemes'=>array(  
                                'http' => true,  
                               'https' => true,  
            ),  
                  'HTML.Allowed'=>'div',  
        );  
        if(isset($_POST['news']){  
            $_POST['news']['content'] = $purify($_POST['news']['content']);  
        }  
            $filterChain->run();  
    }  
    

      

    4. 在视图中的使用:

    <?php $this->beginWidget('CHtmlPurifier'); ?>    
    ...display user-entered content here...    
    <?php $this->endWidget(); ?>  
    

      

  • 相关阅读:
    k8s之docker被屏蔽后下载方法
    代码合并工具Beyond Compare的使用技巧
    (转)设计模式——观察者模式
    notepad问题汇总
    个人构建问题
    内部git常用总结
    (转)动态规划算法—买卖股票的最佳时机系列
    (转)java中引用传递和值传递
    互联网面试题
    (转)UML类图与类的关系详解
  • 原文地址:https://www.cnblogs.com/freespider/p/4262462.html
Copyright © 2011-2022 走看看