本文实例讲述了Yii净化器CHtmlPurifier用法。分享给大家供大家参考,具体如下:
1. 在控制器中使用:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
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. 在模型中的使用:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
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. 在过滤器中的使用:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
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. 在视图中的使用:
1
2
3
|
<?php $this ->beginWidget( 'CHtmlPurifier' ); ?>
...display user-entered content here...
<?php $this ->endWidget(); ?>
|
希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。