熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> PHP編程 >> 正文

淺析php插件 HTMLPurifier HTML解析器

2013-11-15 12:22:06  來源: PHP編程 
本篇文章是對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);


From:http://tw.wingwit.com/Article/program/PHP/201311/20818.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.