浅析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在程序中将网页生成word文档并提供下载的代码
Oct 09 PHP
PHP中替换换行符的几种方法小结
Oct 15 PHP
php判断ip黑名单程序代码实例
Feb 24 PHP
PHP英文字母大小写转换函数小结
May 03 PHP
PHP调用wsdl文件类型的接口代码分享
Nov 19 PHP
帝国cms常用标签汇总
Jul 06 PHP
CI(Codeigniter)的Setting增强配置类实例
Jan 06 PHP
PHP设计模式之观察者模式实例
Feb 22 PHP
简单解析PHP程序的运行流程
Jun 23 PHP
用php+ajax新建流程(请假、进货、出货等)
Jun 11 PHP
PHP基于关联数组20行代码搞定约瑟夫问题示例
Nov 07 PHP
php实现推荐功能的简单实例
Sep 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
德生PL450的电路分析和低放电路的改进办法
2021/03/02 无线电
php 如何获取数组第一个值
2013/08/06 PHP
PHP微信分享开发详解
2017/01/14 PHP
使用Mootools动态添加Css样式表代码,兼容各浏览器
2011/12/12 Javascript
toggle一个div显示或隐藏且可扩展成自定义下拉框
2013/09/12 Javascript
JavaScript作用域示例详解
2016/07/07 Javascript
AngularJS 面试题集锦
2016/09/06 Javascript
require.js+vue开发微信上传图片组件
2016/10/27 Javascript
Javascript中document.referrer隐藏来源的方法
2017/01/16 Javascript
jQuery实现的页面遮罩层功能示例【测试可用】
2017/10/14 jQuery
vue axios 二次封装的示例代码
2017/12/08 Javascript
解决vue js IOS H5focus无法自动弹出键盘的问题
2018/08/30 Javascript
vue实现微信二次分享以及自定义分享的示例
2019/03/20 Javascript
详解js根据百度地图提供经纬度计算两点距离
2019/05/13 Javascript
使用Node.js在深度学习中做图片预处理的方法
2019/09/18 Javascript
微信内置浏览器图片查看器的代码实例
2019/10/08 Javascript
Python实现批量修改文件名实例
2015/07/08 Python
python使用wxpy实现微信消息防撤回脚本
2019/04/29 Python
python实现爬取百度图片的方法示例
2019/07/06 Python
flask/django 动态查询表结构相同表名不同数据的Model实现方法
2019/08/29 Python
python 利用turtle库绘制笑脸和哭脸的例子
2019/11/23 Python
PyTorch 普通卷积和空洞卷积实例
2020/01/07 Python
python 爬取古诗文存入mysql数据库的方法
2020/01/08 Python
CSS3径向渐变之大鱼吃小鱼之孤单的大鱼
2016/04/26 HTML / CSS
CSS3+HTML5+JS 实现一个块的收缩与展开动画效果
2020/11/17 HTML / CSS
英国最大的女性服装零售商:Dorothy Perkins
2017/03/30 全球购物
优秀班干部事迹材料
2014/01/26 职场文书
企业仓管员岗位职责
2014/06/15 职场文书
副主任竞聘演讲稿
2014/08/18 职场文书
三孔导游词
2015/02/05 职场文书
企业党支部工作总结2015
2015/05/21 职场文书
2015年安全生产管理工作总结
2015/05/25 职场文书
2019年干货:自我鉴定
2019/03/25 职场文书
最新最全的手机号验证正则表达式
2022/02/24 Javascript
《进击的巨人》新联动CM 兵长强势出击兽巨人
2022/04/05 日漫
教你在 Java 中实现 Dijkstra 最短路算法的方法
2022/04/08 Java/Android