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远程连接MYSQL数据库非常慢的解决方法
Jul 05 PHP
PHP 调试工具Debug Tools
Apr 30 PHP
PHP递归返回值时出现的问题解决办法
Feb 19 PHP
php实现文件下载简单示例(代码实现文件下载)
Mar 10 PHP
ThinkPHP提交表单时默认自动转义的解决方法
Nov 25 PHP
php定时执行任务设置详解
Feb 06 PHP
PHP网站开发中常用的8个小技巧
Feb 13 PHP
php使用curl打开https网站的方法
Jun 17 PHP
详解PHP中的PDO类
Jul 06 PHP
php preg_match的匹配不同国家语言实例
Dec 29 PHP
PHP实现判断数组是一维、二维或几维的方法
Feb 06 PHP
PHP实现的贪婪算法实例
Oct 17 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中实现获取IP和地理位置类分享
2015/02/10 PHP
thinkphp3.2实现上传图片的控制器方法
2016/04/28 PHP
解决php用mysql方式连接数据库出现Deprecated报错问题
2019/12/25 PHP
百度留言本js 大家可以参考下
2009/10/13 Javascript
isArray()函数(JavaScript中对象类型判断的几种方法)
2009/11/26 Javascript
jQuery focus和blur事件的应用详解
2014/01/26 Javascript
js实现鼠标划过给div加透明度的方法
2015/05/25 Javascript
JavaScript tab选项卡插件实例代码
2016/02/23 Javascript
jQuery is not defined 错误原因与解决方法小结
2017/03/19 Javascript
React Native中的RefreshContorl下拉刷新使用
2017/10/09 Javascript
angular中不同的组件间传值与通信的方法
2017/11/04 Javascript
原生js+cookie实现购物车功能的方法分析
2017/12/21 Javascript
微信小程序中进行地图导航功能的实现方法
2018/06/29 Javascript
在React中写一个Animation组件为组件进入和离开加上动画/过度效果
2019/06/24 Javascript
使用JS实现动态时钟
2020/03/12 Javascript
JS数组reduce()方法原理及使用技巧解析
2020/07/14 Javascript
python常用web框架简单性能测试结果分享(包含django、flask、bottle、tornado)
2014/08/25 Python
Python复制目录结构脚本代码分享
2015/03/06 Python
使用Python的判断语句模拟三目运算
2015/04/24 Python
python笔记_将循环内容在一行输出的方法
2019/08/08 Python
python matplotlib 画dataframe的时间序列图实例
2019/11/20 Python
HTML5 WebGL 实现民航客机飞行监控系统
2019/07/25 HTML / CSS
ivx平台开发之不用代码实现一个九宫格抽奖功能
2021/01/27 HTML / CSS
尤妮佳moony海外旗舰店:日本殿堂级纸尿裤品牌
2018/02/23 全球购物
我的求职计划书
2014/01/10 职场文书
迎八一活动主题
2014/01/31 职场文书
四查四看剖析材料
2014/02/14 职场文书
绿色城市实施方案
2014/03/19 职场文书
售后服务承诺书模板
2014/05/21 职场文书
暑期社会实践个人总结
2015/03/06 职场文书
面试通知单大全
2015/04/20 职场文书
雷锋的故事观后感
2015/06/10 职场文书
物业保洁员管理制度
2015/08/05 职场文书
社区志愿者服务心得体会
2016/01/22 职场文书
导游词之西安骊山
2019/12/03 职场文书
vue实现移动端div拖动效果
2022/03/03 Vue.js