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新手上路(十)
Oct 09 PHP
CentOS 6.2使用yum安装LAMP以及phpMyadmin详解
Jun 17 PHP
解析使用substr截取UTF-8中文字符串出现乱码的问题
Jun 20 PHP
zf框架的session会话周期及次数限制使用示例
Mar 13 PHP
PHP大批量插入数据库的3种方法和速度对比
Jul 08 PHP
PHP中IP地址与整型数字互相转换详解
Aug 20 PHP
Swoole-1.7.22 版本已发布,修复PHP7相关问题
Dec 31 PHP
总结对比php中的多种序列化
Aug 28 PHP
php str_getcsv把字符串解析为数组的实现方法
Apr 05 PHP
php使用curl实现ftp文件下载功能
May 16 PHP
关于ThinkPhp 框架表单验证及ajax验证问题
Jul 19 PHP
PHP5.5基于mysqli连接MySQL数据库和读取数据操作实例详解
Feb 16 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
星际争霸任务指南——人族
2020/03/04 星际争霸
phpadmin如何导入导出大数据文件及php.ini参数修改
2013/02/18 PHP
Web程序工作原理详解
2014/12/25 PHP
ThinkPHP5 框架引入 Go AOP,PHP AOP编程项目详解
2020/05/12 PHP
如何在Laravel之外使用illuminate组件详解
2020/09/20 PHP
Alliance vs AM BO3 第二场2.13
2021/03/10 DOTA
extjs DataReader、JsonReader、XmlReader的构造方法
2009/11/07 Javascript
jQuery 常见学习网站与参考书
2009/11/09 Javascript
过期软件破解办法实例详解
2017/01/04 Javascript
基于javascript的异步编程实例详解
2017/04/10 Javascript
快速搭建React的环境步骤详解
2017/11/06 Javascript
koa上传excel文件并解析的实现方法
2018/08/09 Javascript
Vue 实现展开折叠效果的示例代码
2018/08/27 Javascript
关于layui 实现点击按钮添加一行(方法渲染创建的table)
2019/09/29 Javascript
在Angular中实现一个级联效果的下拉框的示例代码
2020/05/20 Javascript
深入了解Vue.js 混入(mixins)
2020/07/23 Javascript
vue addRoutes路由动态加载操作
2020/08/04 Javascript
解决nuxt页面中mounted、created、watch执行两遍的问题
2020/11/05 Javascript
python写xml文件的操作实例
2014/10/05 Python
将Django使用的数据库从MySQL迁移到PostgreSQL的教程
2015/04/11 Python
Python彩色化Linux的命令行终端界面的代码实例分享
2016/07/02 Python
Pycharm学习教程(5) Python快捷键相关设置
2017/05/03 Python
Django中Forms的使用代码解析
2018/02/10 Python
详解Python中的动态属性和特性
2018/04/07 Python
浅析python 字典嵌套
2020/09/29 Python
python爬虫中的url下载器用法详解
2020/11/30 Python
使用HTML5捕捉音频与视频信息概述及实例
2018/08/22 HTML / CSS
深入剖析webstorage[html5的本地数据处理]
2016/07/11 HTML / CSS
澳大利亚领先的时尚内衣零售商:Bras N Things
2020/07/28 全球购物
课内比教学心得体会
2014/09/09 职场文书
张家口市高新区党工委群众路线教育实践活动整改方案
2014/10/25 职场文书
结婚通知短信怎么写
2015/04/17 职场文书
水浒传读书笔记
2015/06/25 职场文书
百年孤独读书笔记
2015/06/29 职场文书
Spring boot应用启动后首次访问很慢的解决方案
2021/06/23 Java/Android
win10识别不了U盘怎么办 win10系统读取U盘失败的解决办法
2022/08/05 数码科技