手机
当前位置:查字典教程网 >编程开发 >php教程 >浅析php插件 HTMLPurifier HTML解析器
浅析php插件 HTMLPurifier HTML解析器
摘要:HTMLPurifier插件的使用下载HTMLPurifier插件HTMLPurifier插件有用的部分是library使用HTMLPuri...

HTMLPurifier插件的使用

下载HTMLPurifier插件

HTMLPurifier插件有用的部分是 library

浅析php插件 HTMLPurifier HTML解析器1

使用HTMLPurifier library类库

第一种方式

复制代码 代码如下:

<?php

require_once 'HTMLPurifier.auto.php';

$config = HTMLPurifier_Config::createDefault();

?>

或者

复制代码 代码如下:

<?php

require_once 'HTMLPurifier.includes.php';

require_once 'HTMLPurifier.autoload.php';

$config = HTMLPurifier_Config::createDefault();

?>

官网给出的例子是

复制代码 代码如下:

require_once 'HTMLPurifier.auto.php';

我同事常用的是

复制代码 代码如下:

require_once 'HTMLPurifier.includes.php';

require_once 'HTMLPurifier.autoload.php';

设置$config

configdoc

http://htmlpurifier.org/live/configdoc/plain.html

例子

复制代码 代码如下:

$config->set('HTML.AllowedElements', array('div'=>true, 'table'=>true, 'tr'=>true, 'td'=>true, 'br'=>true));

$config->set('HTML.Doctype', 'XHTML 1.0 Transitional')//html文档类型(常设)

$config->set('Core.Encoding', 'UTF-8')//字符编码(常设)

HTML允许的元素

div元素,table元素,tr元素,td元素,br元素

new HTMLPurifier对象

复制代码 代码如下:

$purifier = new HTMLPurifier($config);

调用HTMLPurifier对象的purify方法

复制代码 代码如下:

$puri_html = $purifier->purify($html);

第二种方式

自定义一个类 HtmlPurifier.php

复制代码 代码如下:

<?php

require_once 'HTMLPurifier.includes.php';

require_once 'HTMLPurifier.autoload.php';

class Resume_HtmlPurifier implements Zend_Filter_Interface{

protected $_htmlPurifier = null;

public function __construct($options = null)

{

$config = HTMLPurifier_Config::createDefault();

$config->set('Code.Encoding', 'UTF-8');

$config->set('HTML.Doctype', 'XHTML 1.0 Transitional')

if(!is_null($options)){

foreach($options as $option){

$config->set($option[0], $option[1], $option[2]);

}

}

$this->_htmlPurifier = new HTMLPurifier($config);

}

public function filter($value)

{

return $this->_htmlPurifier->purify($value);

}

}

?>

设置config信息

例如:

复制代码 代码如下:

$conf = array(

array('HTML.AllowedElements',

array(

'div' => true,

'table' => true,

'tr' => true,

'td' => true,

'br' => true,

),

false),//允许属性 div table tr td br元素

array('HTML.AllowedAttributes', array('class' => TRUE), false),//允许属性 class

array('Attr.ForbiddenClasses', array('resume_p' => TRUE), false),//禁止classes如

array('AutoFormat.RemoveEmpty', true, false),//去空格

array('AutoFormat.RemoveEmpty.RemoveNbsp', true, false),//去nbsp

array('URI.Disable', true, false),

);

调用

复制代码 代码如下:

$p = new Resume_HtmlPurifier($conf);

$puri_html = $p->filter($html);

【浅析php插件 HTMLPurifier HTML解析器】相关文章:

PHP的伪随机数与真随机数详解

十天学会php之第五天

PHP使用mysqldump命令导出数据库

社区(php&&mysql)五

用 php 编写的日历

将PHP从5.3.28升级到5.3.29时Nginx出现502错误

PHP中上传大体积文件时需要的设置

浅谈php提交form表单

PHP程序员一般都忽略了的几点精华

php简单实现多字节字符串翻转的方法

精品推荐
分类导航