程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> 淺析php插件 HTMLPurifier HTML解析器

淺析php插件 HTMLPurifier HTML解析器

編輯:關於PHP編程
    本篇文章是對php插件 HTMLPurifier HTML解析器進行了詳細的分析介紹,需要的朋友參考下  

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


    使用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);

    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved