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 相关文章推荐
新版mysql+apache+php Linux安装指南
Oct 09 PHP
基于qmail的完整WEBMAIL解决方案安装详解
Oct 09 PHP
用PHP实现小写金额转换大写金额的代码(精确到分)
Jan 10 PHP
jQuery+php实现ajax文件即时上传的详解
Jun 17 PHP
使用PHP获取汉字的拼音(全部与首字母)
Jun 27 PHP
yii框架builder、update、delete使用方法
Apr 30 PHP
帝国CMS留言板回复后发送EMAIL通知客户
Jul 06 PHP
php微信公众平台开发之获取用户基本信息
Aug 17 PHP
php如何实现不借助IDE快速定位行数或者方法定义的文件和位置
Jan 17 PHP
PHP simplexml_load_file()函数讲解
Feb 03 PHP
在Laravel中使用GuzzleHttp调用第三方服务的API接口代码
Oct 15 PHP
PHP 时间处理类Carbon
May 20 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静态类
2006/11/25 PHP
使用PHP数组实现无限分类,不使用数据库,不使用递归.
2006/12/09 PHP
PHP版自动生成文章摘要
2008/07/23 PHP
php文件缓存类用法实例分析
2015/04/22 PHP
PHP的几个常用加密函数
2016/02/03 PHP
php mysql数据库操作类(实例讲解)
2017/08/06 PHP
[原创]站长必须要知道的javascript广告代码
2007/05/30 Javascript
仿猪八戒网左下角的文字滚动效果
2011/10/28 Javascript
Mac/Windows下如何安装Node.js
2013/11/22 Javascript
jQuery中closest()函数用法实例
2015/01/07 Javascript
简述JavaScript提交表单的方式 (Using JavaScript Submit Form)
2016/03/18 Javascript
第十章之巨幕页头缩略图与警告框组件
2016/04/25 Javascript
设计模式中的facade外观模式在JavaScript开发中的运用
2016/05/18 Javascript
jquery mobile界面数据刷新的实现方法
2016/05/28 Javascript
JS实现的Object数组去重功能示例【数组成员为Object对象】
2019/02/01 Javascript
详解如何使用微信小程序云函数发送短信验证码
2019/03/13 Javascript
[01:06:59]完美世界DOTA2联赛PWL S2 Magma vs FTD 第一场 11.29
2020/12/02 DOTA
Python入门篇之函数
2014/10/20 Python
Python中的特殊语法:filter、map、reduce、lambda介绍
2015/04/14 Python
Python3分析处理声音数据的例子
2019/08/27 Python
Django框架教程之中间件MiddleWare浅析
2019/12/29 Python
Python调用Windows命令打印文件
2020/02/07 Python
canvas实现圆形进度条动画的示例代码
2017/12/26 HTML / CSS
锐步美国官方网站:Reebok美国
2018/01/10 全球购物
波兰在线运动商店:YesSport
2020/07/23 全球购物
学生自我评价范文
2014/02/02 职场文书
党员公开承诺书
2014/03/25 职场文书
见习报告的格式
2014/10/31 职场文书
钳工实训报告总结
2014/11/04 职场文书
无保留意见审计报告
2015/06/05 职场文书
关于观后感的作文
2015/06/18 职场文书
《飘》英文读后感五篇
2019/10/11 职场文书
聘任书的格式及模板
2019/10/28 职场文书
html5调用摄像头实例代码
2021/06/28 HTML / CSS
利用Pycharm连接服务器的全过程记录
2021/07/01 Python
服务器SVN搭建图文安装过程
2022/06/21 Servers