Yii净化器CHtmlPurifier用法示例(过滤不良代码)


Posted in PHP onJuly 15, 2016

本文实例讲述了Yii净化器CHtmlPurifier用法。分享给大家供大家参考,具体如下:

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

希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。

PHP 相关文章推荐
PHP中for循环语句的几种变型
Nov 26 PHP
php下使用无限生命期Session的方法
Mar 16 PHP
一个PHP的String类代码
Apr 20 PHP
PHP 调试工具Debug Tools
Apr 30 PHP
ecshop 批量上传(加入自定义属性)
Mar 20 PHP
PHP的pcntl多进程用法实例
Mar 19 PHP
ThinkPHP 模板引擎使用详解
May 07 PHP
PHP jQuery+Ajax结合写批量删除功能
May 19 PHP
PHP使用栈解决约瑟夫环问题算法示例
Aug 27 PHP
PHP7如何开启Opcode打造强悍性能详解
May 11 PHP
PHP htmlentities()函数用法讲解
Feb 25 PHP
Discuz不使用插件实现简单的打赏功能
Mar 21 PHP
Yii列表定义与使用分页方法小结(3种方法)
Jul 15 #PHP
session 加入redis的实现代码
Jul 15 #PHP
Yii模型操作之criteria查找数据库的方法
Jul 15 #PHP
功能强大的PHP POST提交数据类
Jul 15 #PHP
Yii的Srbac插件用法详解
Jul 14 #PHP
Yii中srbac权限扩展模块工作原理与用法分析
Jul 14 #PHP
Yii视图操作之自定义分页实现方法
Jul 14 #PHP
You might like
php下用GD生成生成缩略图的两个选择和区别
2007/04/17 PHP
ThinkPHP的Widget扩展实例
2014/06/19 PHP
通过PHP自带的服务器来查看正则匹配结果的方法
2015/12/24 PHP
php创建桌面快捷方式实现方法
2015/12/31 PHP
php实现页面纯静态的实例代码
2017/06/21 PHP
Laravel服务容器绑定的几种方法总结
2020/06/14 PHP
nginx 设置多个站跨域
2021/03/09 Servers
给网站上的广告“加速”显示的方法
2007/04/08 Javascript
Prototype中dom对象方法汇总
2008/09/17 Javascript
TBCompressor js代码压缩
2011/01/05 Javascript
JQuery实现图片轮播效果
2015/09/15 Javascript
如何让你的JS代码更好看易读
2017/12/01 Javascript
Angular5升级RxJS到5.5.3报错:EmptyError: no elements in sequence的解决方法
2018/04/09 Javascript
nodejs对项目下所有空文件夹创建gitkeep的方法
2019/08/02 NodeJs
js脚本中执行java后台代码方法解析
2019/10/11 Javascript
微信小程序自定义底部弹出框功能
2020/11/18 Javascript
[01:01:24]DOTA2上海特级锦标赛A组败者赛 EHOME VS CDEC第三局
2016/02/25 DOTA
python3访问sina首页中文的处理方法
2014/02/24 Python
初步介绍Python中的pydoc模块和distutils模块
2015/04/13 Python
在Python的Django框架中simple-todo工具的简单使用
2015/05/30 Python
python2 与 pyhton3的输入语句写法小结
2018/09/10 Python
Window10下python3.7 安装与卸载教程图解
2019/09/30 Python
pycharm sciview的图片另存为操作
2020/06/01 Python
如何解决python多种版本冲突问题
2020/10/13 Python
汽车专业人才自我鉴定范文
2013/12/29 职场文书
关于廉洁的广播稿
2014/01/30 职场文书
总结表彰大会主持词
2014/03/26 职场文书
驾驶员培训方案
2014/05/01 职场文书
工程材料采购方案
2014/05/18 职场文书
机电一体化毕业生自荐信
2014/06/19 职场文书
出纳工作检讨书范文
2014/12/27 职场文书
离婚协议书范文2015
2015/01/26 职场文书
悬空寺导游词
2015/02/05 职场文书
python读取mat文件生成h5文件的实现
2022/07/15 Python
详解CSS3浏览器兼容
2022/12/24 HTML / CSS
python+pyhyper实现识别图片中的车牌号思路详解
2022/12/24 Python