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生成迅雷、快车、旋风等软件的下载链接代码实例
May 12 PHP
PHP中$this和$that指针使用实例
Jan 06 PHP
php使用parse_url和parse_str解析URL
Feb 22 PHP
php输出指定时间以前时间格式的方法
Mar 21 PHP
php修改上传图片尺寸的方法
Apr 14 PHP
PHP文件及文件夹操作之创建、删除、移动、复制
Jul 13 PHP
PHP实现批量删除(封装)
Apr 28 PHP
PHP基于SimpleXML生成和解析xml的方法示例
Jul 17 PHP
thinkphp5 migrate数据库迁移工具
Feb 20 PHP
stripos函数知识点实例分享
Feb 11 PHP
php函数式编程简单示例
Aug 08 PHP
基于php伪静态的实现方法解析
Jul 31 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
环境会对咖啡种植有什么影响
2021/03/03 咖啡文化
在数据量大(超过10万)的情况下
2007/01/15 PHP
IIS6.0中配置php服务全过程解析
2013/08/07 PHP
php实现天干地支计算器示例
2014/03/14 PHP
ThinkPHP3.1新特性之对Ajax的支持更加完善
2014/06/19 PHP
async和DOM Script文件加载比较
2014/07/20 PHP
phpcms配置列表页以及获得文章发布时间
2017/07/04 PHP
PHP实现简单的协程任务调度demo示例
2020/02/01 PHP
javascript 日期常用的方法
2009/11/11 Javascript
jQuery 开天辟地入门篇一
2009/12/09 Javascript
JavaScript.The.Good.Parts阅读笔记(一)假值与===运算符
2010/11/16 Javascript
利用javascript解决图片缩放及其优化的代码
2012/05/23 Javascript
自己写的兼容ie和ff的在线文本编辑器类似ewebeditor
2012/12/12 Javascript
JS简单的图片放大缩小的两种方法
2013/11/11 Javascript
JS实现的另类手风琴效果网页内容切换代码
2015/09/08 Javascript
jquery之别踩白块游戏的简单实现
2016/07/25 Javascript
JavaScript实现前端实时搜索功能
2020/03/26 Javascript
详解AngularJS ng-class样式切换
2017/06/27 Javascript
DataTables添加额外的查询参数和删除columns等无用参数实例
2017/07/04 Javascript
Vue中的scoped实现原理及穿透方法
2018/05/15 Javascript
基于Web Audio API实现音频可视化效果
2020/06/12 Javascript
浅谈鸿蒙 JavaScript GUI 技术栈
2020/09/17 Javascript
[01:18:45]DOTA2-DPC中国联赛 正赛 DLG vs Dragon BO3 第三场2月1日
2021/03/11 DOTA
Python松散正则表达式用法分析
2016/04/29 Python
Python 转义字符详细介绍
2017/03/21 Python
Python3一行代码实现图片文字识别的示例
2018/01/15 Python
Python生成器的使用方法和示例代码
2019/03/04 Python
详解Python用户登录接口的方法
2019/04/17 Python
Python中断多重循环的几种方式详解
2020/02/10 Python
英国最大的专业户外零售商:Mountain Warehouse
2018/06/06 全球购物
大学自我鉴定
2013/12/20 职场文书
聚美优品的广告词
2014/03/14 职场文书
实训报告范文大全
2014/11/04 职场文书
品质保证书格式
2015/02/28 职场文书
基于CSS3画一个iPhone
2021/04/21 HTML / CSS
mysql创建存储过程及函数详解
2021/12/04 MySQL