Yii净化器CHtmlPurifier用法示例(过滤不良代码)
本文实例讲述了Yii净化器CHtmlPurifier用法。分享给大家供大家参考,具体如下:
1.在控制器中使用:
publicfunctionactionCreate()
{
$model=newNews;
$purifier=newCHtmlPurifier();
$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.在模型中的使用:
protectedfunctionbeforeSave()
{
$purifier=newCHtmlPurifier();
$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-dH:m:s');
$this->content=$purifier->purify($this->content);
}
returntrue;
}else{
returnfalse;
}
}
3.在过滤器中的使用:
publicfunctionfilters()
{
returnarray(
'accessControl',//performaccesscontrolforCRUDoperations
'postOnly+delete',//weonlyallowdeletionviaPOSTrequest
'purifier+create',//载入插入页面时进行些过滤操作
);
}
publicfunctionfilterPurifier($filterChain){
$purifier=newCHtmlPurifier();
$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');?>
...displayuser-enteredcontenthere...
<?php$this->endWidget();?>
更多关于Yii相关内容感兴趣的读者可查看本站专题:《Yii框架入门及常用技巧总结》、《php优秀开发框架总结》、《smarty模板入门基础教程》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。