浅析php插件 HTMLPurifier HTML解析器


Posted in PHP onJuly 01, 2013

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

浅析php插件 HTMLPurifier HTML解析器
使用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 相关文章推荐
php中用文本文件做数据库的实现方法
Mar 27 PHP
thinkphp实现图片上传功能分享
Mar 04 PHP
php定界符
Jun 19 PHP
PHP遍历数组的方法汇总
Apr 30 PHP
php检测图片主要颜色的方法
Jul 01 PHP
解析WordPress中控制用户登陆和判断用户登陆的PHP函数
Mar 01 PHP
PHP实现多关键字加亮功能
Oct 21 PHP
php遍历、读取文件夹中图片并分页显示图片的方法
Nov 15 PHP
thinkphp框架page类与bootstrap分页(美化)
Jun 25 PHP
PHP序列化的四种实现方法与横向对比
Nov 29 PHP
实例讲解php将字符串输出到HTML
Jan 27 PHP
50个优秀经典PHP算法大集合 附源码
Aug 26 PHP
浅析php插件 Simple HTML DOM 用DOM方式处理HTML
Jul 01 #PHP
php curl选项列表(超详细)
Jul 01 #PHP
基于simple_html_dom的使用小结
Jul 01 #PHP
解析php php_openssl.dll的作用
Jul 01 #PHP
关于php 接口问题(php接口主要也就是运用curl,curl函数)
Jul 01 #PHP
浅析PKI加密解密 OpenSSL
Jul 01 #PHP
php pki加密技术(openssl)详解
Jul 01 #PHP
You might like
安健A254立体声随身听的分析与打磨
2021/03/02 无线电
php 读取文件乱码问题
2010/02/20 PHP
thinkPHP模板引擎用法示例
2016/12/08 PHP
PHP如何使用JWT做Api接口身份认证的实现
2020/02/03 PHP
php实现统计IP数及在线人数的示例代码
2020/07/22 PHP
javascript jQuery $.post $.ajax用法
2008/07/09 Javascript
JQUBar 基于JQUERY的柱状图插件
2010/11/23 Javascript
jquery 元素控制(追加元素/追加内容)介绍及应用
2013/04/21 Javascript
jQuery 复合选择器应用的几个例子
2014/09/11 Javascript
javascript实现在网页任意处点左键弹出隐藏菜单的方法
2015/05/13 Javascript
JavaScript SHA-256加密算法详细代码
2016/10/06 Javascript
JS实现异步上传压缩图片
2017/04/22 Javascript
浅谈es6中export和export default的作用及区别
2018/02/07 Javascript
webpack4 处理SCSS的方法示例
2018/09/03 Javascript
Javascript前端下载后台传来的文件流代码实例
2020/08/18 Javascript
关于Vue中$refs的探索浅析
2020/11/05 Javascript
[01:41]DOTA2超级联赛专访YYF 称一辈子难忘TI2
2013/05/28 DOTA
[03:42]2014DOTA2西雅图国际邀请赛 Navi战队巡礼
2014/07/07 DOTA
[14:25]教你分分钟做大人:主宰(HEROS)
2014/12/08 DOTA
[04:03]辉夜杯主赛事 12月25日RECAP精彩回顾
2015/12/26 DOTA
Python读取网页内容的方法
2015/07/30 Python
Python开发之快速搭建自动回复微信公众号功能
2016/04/22 Python
在Pycharm中设置默认自动换行的方法
2019/01/16 Python
Python类的继承用法示例
2019/01/31 Python
Python爬取爱奇艺电影信息代码实例
2019/11/26 Python
Python中pass的作用与使用教程
2020/11/13 Python
加拿大健康、婴儿和美容产品在线购物:Well.ca
2016/11/30 全球购物
亚马逊西班牙购物网站:amazon西班牙
2017/03/06 全球购物
欧洲最大的滑雪假期供应商之一:Sunweb Holidays
2018/01/06 全球购物
JNI的定义
2012/11/25 面试题
舞蹈教育学专业推荐信
2013/11/27 职场文书
教师远程培训感言
2014/03/06 职场文书
家具公司总经理岗位职责
2014/07/08 职场文书
廉政承诺书
2015/01/19 职场文书
2015年上半年计生工作总结
2015/03/30 职场文书
golang如何去除多余空白字符(含制表符)
2021/04/25 Golang