浅析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时的知识积累总结
Jun 07 PHP
codeigniter实现get分页的方法
Jul 10 PHP
PHP抽奖算法程序代码分享
Oct 08 PHP
PHP仿微信多图片预览上传实例代码
Sep 13 PHP
PHP实现链式操作的原理详解
Sep 16 PHP
thinkPHP5.0框架API优化后的友好性分析
Mar 17 PHP
完美解决在ThinkPHP控制器中命名空间的问题
May 05 PHP
php读取本地json文件的实例
Mar 07 PHP
Laravel框架在本地虚拟机快速安装的方法详解
Jun 11 PHP
thinkPHP5框架auth权限控制类与用法示例
Jun 12 PHP
YII框架学习笔记之命名空间、操作响应与视图操作示例
Apr 30 PHP
Laravel5.4简单实现app接口Api Token认证方法
Aug 29 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
PHP 5.3 下载时 VC9、VC6、Thread Safe、Non Thread Safe的区别分析
2011/03/28 PHP
php下利用curl判断远程文件是否存在的实现代码
2011/10/08 PHP
php实现邮件发送并带有附件
2014/01/24 PHP
[原创]php简单隔行变色功能实现代码
2016/07/09 PHP
PHPCrawl爬虫库实现抓取酷狗歌单的方法示例
2017/12/21 PHP
硬盘浏览程序,保存成网页格式便可使用
2006/12/03 Javascript
服务端 VBScript 与 JScript 几个相同特性的写法 By shawl.qiu
2007/03/06 Javascript
csdn 论坛技术区平均给分功能
2009/11/07 Javascript
Windows8下搭建Node.js开发环境教程
2014/09/03 Javascript
EasyUi datagrid 实现表格分页
2015/02/10 Javascript
JavaScript实现图像模糊化的方法实例
2017/01/15 Javascript
vue组件初学_弹射小球(实例讲解)
2017/09/06 Javascript
简单了解vue.js数组的常用操作
2019/06/17 Javascript
js实现div色块碰撞
2020/01/16 Javascript
vue 项目中当访问路由不存在的时候默认访问404页面操作
2020/08/31 Javascript
vue使用svg文件补充-svg放大缩小操作(使用d3.js)
2020/09/22 Javascript
[44:15]DOTA2上海特级锦标赛主赛事日 - 5 败者组决赛Liquid VS EG第二局
2016/03/06 DOTA
python多线程方式执行多个bat代码
2016/06/07 Python
windows 下python+numpy安装实用教程
2017/12/23 Python
python导出hive数据表的schema实例代码
2018/01/22 Python
python中virtualenvwrapper安装与使用
2018/05/20 Python
Python读取系统文件夹内所有文件并统计数量的方法
2018/10/23 Python
python如何爬取网站数据并进行数据可视化
2019/07/08 Python
Python3中urlencode和urldecode的用法详解
2019/07/23 Python
浅谈python中统计计数的几种方法和Counter详解
2019/11/07 Python
将keras的h5模型转换为tensorflow的pb模型操作
2020/05/25 Python
Python+OpenCV图像处理——图像二值化的实现
2020/10/24 Python
css3 position fixed固定居中问题解决方案
2014/08/19 HTML / CSS
英国手工布艺沙发在线购买:Sofas & Stuff
2018/03/02 全球购物
Bally美国官网:经典瑞士鞋履、手袋及配饰奢侈品牌
2018/05/18 全球购物
激光脱毛、蓝光和护肤:Tria Beauty
2019/03/28 全球购物
《美丽的丹顶鹤》教学反思
2014/04/22 职场文书
酒店管理毕业生自荐信
2014/05/25 职场文书
医疗专业毕业生求职信
2014/08/28 职场文书
对外汉语专业大学生职业生涯规划范文
2014/09/13 职场文书
详解Redis瘦身指南
2021/05/26 Redis