php

位置:IT落伍者 >> php >> 浏览文章

浅析php插件 HTMLPurifier HTML解析器


发布日期:2022年01月18日
 
浅析php插件 HTMLPurifier HTML解析器
本篇文章是对php插件 HTMLPurifier HTML解析器进行了详细的分析介绍需要的朋友参考下

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


使用HTMLPurifier library类库
第一种方式

复制代码 代码如下:
<?php
require_once HTMLPurifierautophp;
$config = HTMLPurifier_Config::createDefault();
?>


或者

复制代码 代码如下:
<?php
require_once HTMLPurifierincludesphp;
require_once HTMLPurifierautoloadphp;
$config = HTMLPurifier_Config::createDefault();
?>


官网给出的例子是

复制代码 代码如下:
require_once HTMLPurifierautophp;


我同事常用的是

复制代码 代码如下:
require_once HTMLPurifierincludesphp;
require_once HTMLPurifierautoloadphp;


设置$config
configdoc

例子

复制代码 代码如下:
$config>set(HTMLAllowedElements array(div=>true table=>true tr=>true td=>true br=>true));
$config>set(HTMLDoctype XHTML Transitional)  //html文档类型(常设)
$config>set(CoreEncoding UTF)   //字符编码(常设)


HTML允许的元素
div元素table元素tr元素td元素br元素
new HTMLPurifier对象

复制代码 代码如下:
$purifier = new HTMLPurifier($config);


调用HTMLPurifier对象的purify方法

复制代码 代码如下:
$puri_html = $purifier>purify($html);


第二种方式
自定义一个类 HtmlPurifierphp

复制代码 代码如下:
<?php
require_once HTMLPurifierincludesphp;
require_once HTMLPurifierautoloadphp;
class Resume_HtmlPurifier implements Zend_Filter_Interface{
protected $_htmlPurifier = null;
public function __construct($options = null)
{
$config = HTMLPurifier_Config::createDefault();
$config>set(CodeEncoding UTF);
$config>set(HTMLDoctype XHTML Transitional)
if(!is_null($options)){
foreach($options as $option){
$config>set($option[] $option[] $option[]);
}
}
$this>_htmlPurifier = new HTMLPurifier($config);
}
public function filter($value)
{
return $this>_htmlPurifier>purify($value);

}
}
?>


设置config信息
例如

复制代码 代码如下:
$conf = array(
array(HTMLAllowedElements
array(
div => true
table => true
tr => true
td => true
br => true
)
false) //允许属性 div table tr td br元素
array(HTMLAllowedAttributes array(class => TRUE) false)  //允许属性 class
array(AttrForbiddenClasses array(resume_p => TRUE) false) //禁止classes如
array(AutoFormatRemoveEmpty true false)    //去空格
array(AutoFormatRemoveEmptyRemoveNbsp true false)  //去nbsp
array(URIDisable true false)
);


调用

复制代码 代码如下:


$p = new Resume_HtmlPurifier($conf);
$puri_html = $p>filter($html);

               

上一篇:PHP JSON中文乱码解决方法大全

下一篇:用 PHP 读取文件的正确方法