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获取网址的顶级域名函数代码
Sep 24 PHP
深入apache配置文件httpd.conf的部分参数说明
Jun 28 PHP
ThinkPHP的L方法使用简介
Jun 18 PHP
Yii中render和renderPartial的区别
Sep 03 PHP
PHP框架Laravel的小技巧两则
Feb 10 PHP
php压缩和解压缩字符串的方法
Mar 14 PHP
php计算两个文件相对路径的方法
Mar 14 PHP
php禁用函数设置及查看方法详解
Jul 25 PHP
Yii2.0实现生成二维码功能实例
Oct 24 PHP
PHP基于双向链表与排序操作实现的会员排名功能示例
Dec 26 PHP
一文看懂PHP进程管理器php-fpm
Jun 01 PHP
php中array_fill函数的实例用法
Mar 02 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和Mysqlweb应用开发核心技术 第1部分 Php基础-1 开始了解php
2011/07/03 PHP
微博短链接算法php版本实现代码
2012/09/15 PHP
PHP常用特殊运算符号和函数总结(php新手入门必看)
2013/02/02 PHP
php实现生成验证码实例分享
2016/04/10 PHP
php实现基于openssl的加密解密方法
2016/09/30 PHP
jQuery中的常用事件总结
2009/12/27 Javascript
JavaScript类和继承 this属性使用说明
2010/09/03 Javascript
JQuery一种取同级值的方式(比如你在GridView中)
2012/03/15 Javascript
你必须知道的Javascript知识点之&quot;单线程事件驱动&quot;的使用
2013/04/23 Javascript
JavaScript中number转换成string介绍
2014/12/31 Javascript
jquery实现平滑的二级下拉菜单效果
2015/08/26 Javascript
js动态生成Html元素实现Post操作(createElement)
2015/09/14 Javascript
基于javascript实现图片预加载
2016/01/05 Javascript
vue.js 实现图片本地预览 裁剪 压缩 上传功能
2018/03/01 Javascript
基于AngularJs select绑定数字类型的问题
2018/10/08 Javascript
小程序实现分类页
2019/07/12 Javascript
Vue组件简易模拟实现购物车
2020/12/21 Vue.js
python使用socket进行简单网络连接的方法
2015/04/29 Python
Python编程实现微信企业号文本消息推送功能示例
2017/08/21 Python
Python正则表达式知识汇总
2017/09/22 Python
Python-Flask:动态创建表的示例详解
2019/11/22 Python
Python常用库大全及简要说明
2020/01/17 Python
python add_argument()用法解析
2020/01/29 Python
Python流程控制语句的深入讲解
2020/06/15 Python
Keras搭建自编码器操作
2020/07/03 Python
如何让python的运行速度得到提升
2020/07/08 Python
Python趣味实例,实现一个简单的抽奖刮刮卡
2020/07/18 Python
水电站项目建议书
2014/05/12 职场文书
新闻编辑专业自荐信
2014/07/02 职场文书
党政领导班子群众路线对照检查材料
2014/10/26 职场文书
2015年宣传部部长竞选演讲稿
2014/11/28 职场文书
杭白菊导游词
2015/02/10 职场文书
舞蹈社团活动总结
2015/05/07 职场文书
2015初中教导处工作总结
2015/07/21 职场文书
公安忠诚教育心得体会
2016/01/23 职场文书
HTML页面滚动时部分内容位置固定不滚动的实现
2021/04/14 HTML / CSS