浅析php插件 HTMLPurifier HTML解析器

前端之家收集整理的这篇文章主要介绍了浅析php插件 HTMLPurifier HTML解析器前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

HTMLPurifier插件的使用@H_404_0@下载HTMLPurifier插件@H_404_0@HTMLPurifier插件有用的部分是 library@H_404_0@

404_0@

使用HTMLPurifier library类库@H_404_0@404_0@

代码如下:
404_0@PHP@H_404_0@require_once 'HTMLPurifier.auto.PHP';@H_404_0@$config = HTMLPurifier_Config::createDefault();@H_404_0@?>@H_404_0@
@H_404_0@

或者@H_404_0@

代码如下:
404_0@PHP @H_404_0@require_once 'HTMLPurifier.includes.PHP';@H_404_0@require_once 'HTMLPurifier.autoload.PHP';@H_404_0@$config = HTMLPurifier_Config::createDefault();@H_404_0@?>@H_404_0@
@H_404_0@

官网给出的例子是@H_404_0@

代码如下:
404_0@require_once 'HTMLPurifier.auto.PHP';@H_404_0@
@H_404_0@

我同事常用的是@H_404_0@

代码如下:
404_0@require_once 'HTMLPurifier.includes.PHP';@H_404_0@require_once 'HTMLPurifier.autoload.PHP';@H_404_0@
@H_404_0@

设置$config@H_404_0@

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

例子@H_404_0@

代码如下:
404_0@$config->set('HTML.AllowedElements',array('div'=>true,'table'=>true,'tr'=>true,'td'=>true,'br'=>true));@H_404_0@$config->set('HTML.Doctype','XHTML 1.0 Transitional')//html文档类型(常设)@H_404_0@$config->set('Core.Encoding','UTF-8')//字符编码(常设)@H_404_0@
@H_404_0@

HTML允许的元素@H_404_0@

div元素,table元素,tr元素,td元素,br元素@H_404_0@new HTMLPurifier对象@H_404_0@
代码如下:
404_0@$purifier = new HTMLPurifier($config);@H_404_0@
@H_404_0@调用HTMLPurifier对象的purify方法@H_404_0@
代码如下:
404_0@$puri_html = $purifier->purify($html);@H_404_0@
@H_404_0@

404_0@

自定义一个类 HtmlPurifier.PHP@H_404_0@
代码如下:
404_0@PHP@H_404_0@require_once 'HTMLPurifier.includes.PHP';@H_404_0@require_once 'HTMLPurifier.autoload.PHP';@H_404_0@class Resume_HtmlPurifier implements Zend_Filter_Interface{@H_404_0@protected $_htmlPurifier = null;@H_404_0@public function __construct($options = null)@H_404_0@{@H_404_0@$config = HTMLPurifier_Config::createDefault();@H_404_0@$config->set('Code.Encoding','UTF-8');@H_404_0@$config->set('HTML.Doctype','XHTML 1.0 Transitional')@H_404_0@if(!is_null($options)){@H_404_0@foreach($options as $option){@H_404_0@$config->set($option[0],$option[1],$option[2]);@H_404_0@}@H_404_0@}@H_404_0@$this->_htmlPurifier = new HTMLPurifier($config);@H_404_0@}@H_404_0@public function filter($value)@H_404_0@{@H_404_0@return $this->_htmlPurifier->purify($value);}@H_404_0@}@H_404_0@?>@H_404_0@
@H_404_0@设置config信息@H_404_0@

例如:@H_404_0@

代码如下:
404_0@$conf = array(@H_404_0@array('HTML.AllowedElements',@H_404_0@ array(@H_404_0@ 'div' => true,@H_404_0@ 'table' => true,@H_404_0@ 'tr' => true,@H_404_0@ 'td' => true,@H_404_0@ 'br' => true,@H_404_0@ ),@H_404_0@ false),//允许属性 div table tr td br元素@H_404_0@ array('HTML.AllowedAttributes',array('class' => TRUE),false),//允许属性 class@H_404_0@ array('Attr.ForbiddenClasses',array('resume_p' => TRUE),//禁止classes如@H_404_0@ array('AutoFormat.RemoveEmpty',true,//去空格@H_404_0@ array('AutoFormat.RemoveEmpty.RemoveNbsp',//去nbsp@H_404_0@ array('URI.Disable',@H_404_0@);@H_404_0@
@H_404_0@

调用@H_404_0@

代码如下:
404_0@$p = new Resume_HtmlPurifier($conf);@H_404_0@$puri_html = $p->filter($html);@H_404_0@

猜你在找的PHP相关文章