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(); ?>



  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值