浅析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 中的面向对象编程:通向大型 PHP 工程的办法
Dec 03 PHP
phpmyadmin 3.4 空密码登录的实现方法
May 29 PHP
理解php Hash函数,增强密码安全
Feb 25 PHP
yii框架中的Url生产问题小结
Jan 16 PHP
保存到桌面、设为桌面且带图标的PHP代码
Nov 19 PHP
zf框架的registry(注册表)使用示例
Mar 13 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十二)
Jun 25 PHP
php查询ip所在地的方法
Dec 05 PHP
Django 中 cookie的使用
Aug 17 PHP
PHP中PCRE正则解析代码详解
Apr 26 PHP
PHP针对redis常用操作实例详解
Aug 17 PHP
调试php程序的简单步骤
Oct 04 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与MySQL开发中页面出现乱码的一种解决方法
2007/07/29 PHP
学习php设计模式 php实现模板方法模式
2015/12/08 PHP
详解php实现页面静态化原理
2017/06/21 PHP
php使用flock阻塞写入文件和非阻塞写入文件的实例讲解
2017/07/10 PHP
jquery 简单导航实现代码
2009/09/11 Javascript
使用基于jquery的gamequery插件做JS乒乓球游戏
2011/07/31 Javascript
引用 js在IE与FF之间的区别详细解析
2013/11/20 Javascript
jQuery 快速结束当前正在执行的动画
2013/11/20 Javascript
js输出阴历、阳历、年份、月份、周示例代码
2014/01/29 Javascript
javascript数组去重的六种方法汇总
2015/08/16 Javascript
JS使用正则表达式除去字符串中重复字符的方法
2015/11/05 Javascript
深入浅析JavaScript中with语句的理解
2016/05/12 Javascript
js 获取范围内的随机数实例代码
2016/08/02 Javascript
JS简单获取客户端IP地址的方法【调用搜狐接口】
2016/09/05 Javascript
详解vue+css3做交互特效的方法
2017/11/20 Javascript
Angular5中提取公共组件之radio list的实例代码
2018/07/10 Javascript
微信小程序scroll-view锚点链接滚动跳转功能
2019/12/12 Javascript
Python datetime时间格式化去掉前导0
2014/07/31 Python
Python实现的HTTP并发测试完整示例
2020/04/23 Python
Python CVXOPT模块安装及使用解析
2019/08/01 Python
python 循环数据赋值实例
2019/12/02 Python
使用python 对验证码图片进行降噪处理
2019/12/18 Python
Python使用正则实现计算字符串算式
2019/12/29 Python
解决django 向mysql中写入中文字符出错的问题
2020/05/18 Python
python中random.randint和random.randrange的区别详解
2020/09/20 Python
世界上最伟大的马产品:Equiderma
2020/01/07 全球购物
信息管理专业学生自荐信格式
2013/09/22 职场文书
21岁生日感言
2014/02/27 职场文书
行政办公室岗位职责
2014/03/18 职场文书
2015国际残疾人日活动总结
2015/03/24 职场文书
2015年度房地产工作总结
2015/04/09 职场文书
教师节主持词开场白
2015/05/29 职场文书
关于分班的感言
2015/08/04 职场文书
2016婚礼主持词开场白
2015/11/24 职场文书
Pytorch中的学习率衰减及其用法详解
2021/06/05 Python
Android开发EditText禁止输入监听及InputFilter字符过滤
2022/06/10 Java/Android