搜索
首页PHP 库Other librarieshtmlpurifierPHP过滤库
htmlpurifierPHP过滤库

require_once '/path/to/HTMLPurifier.auto.php';

根据ThinkPHP的规范,对于第三方扩展,不符合ThinkPHP开发规范的,需要将HTMLPurifier放入到Library/Vendor目录中。然后我们可以在方法中通过下面方法将HTMLPurifier.auto.php引入到框架程序中:

vendor('htmlpurifier.library.HTMLPurifier#auto');

不过这里我使用的ThinkPHP 3.2.1,发现这种方法只能使用在函数中,对于控制器类中这样引入是无法正确识别的。也就是说,我们只能在common/function.php文件中引用。

创建HTMLPurifier对象并实现对富文本的过滤

$config = HTMLPurifier_Config::createDefault();
$purifier = new HTMLPurifier($config);
$clean_html = $purifier->purify($dirty_html);

如何对HTMLPurifer的过滤器进行配置

要使用HTMLPurifier,重点还是在如何进行配置。对于上面的程序,我们通过createDefault()方法创建了一个默认的配置对象。我们如果要修改配置的话,可以通过set方法来进行配置设置,方法如下:

$config->set('config_object', value, a=null);

第一个参数就是需要配置的属性,第二个参数就是属性的值,第三个参数具体是做什么用的我也还没有搞明白,不过一般都没有用过,等有时间了再慢慢儿来研究研究。

HTMLPurifier的配置属性可以通过其网站查询到

配置属性选择

HTMLPurifier的配置文档主要是两级分类,大类分Attr(属性)、HTML(html标签)、AutoFormat(自动格式)、CSS(css配置)、Output(输出配置)……小类选择通过大类名称加.加小类名称可以完成。

比如我要配置允许的html标签,比如说p标签和a标签,可以如下配置

$config->set('HTML.Allowed', 'p,a');

属性值的选择

在官方文档中,点击一个属性后,可以看到对这个属性的解释,会告诉你这个属性的值的类型(Type)是String、Int、Array、Boolen……

接着还会告诉你这个属性的默认值,比如是NULL还是true还是false等。这个值的格式就跟PHP的格式一样的。

白名单过滤机制

HTMLPurifier使用了白名单过滤机制,只有被设置允许的才会通过检验。

基本过滤事例

a、过滤掉文本中的所有html标签

/**
 * 过滤掉所有html标签很简单,原因则在白名单机制完成
 */
$config->set('HTML.Allowed', '');

b、保留超链接标签a及其href链接地址属性,并自动添加target属性值为’_blank’

$config->set('HTML.Allowed', 'a[href]');
$config->set('HTML.TargetBlank', true);

c、自动完成段落代码并清除掉无用的空标签

// 让文本自动添加段落标签,前提是必须允许P标签的使用
$config->set('HTML.Allowed', 'p');
$config->set('AutoFormat.AutoParagraph', true);
// 清除空标签
$config->set('AutoFormat.RemoveEmpty', true);
……


免责声明

本站所有资源均由网友贡献或各大下载网站转载。请自行检查软件的完整性!本站所有资源仅供学习参考。请不要将它们用于商业目的。否则,一切后果由您负责!如有侵权,请联系我们删除。联系方式:admin@php.cn

相关文章

PHP 过滤器PHP 过滤器

29Aug2024

这是 PHP 过滤器的指南。到这里我们已经讨论了基本概念,为什么在PHP中要使用Filter呢?和例子。

如何绕过copilot过滤如何绕过copilot过滤

19Aug2024

本文讨论了绕过副驾驶过滤限制的方法和潜在后果。主要问题是由于规避旨在保护我们的安全措施而违反服务条款并暴露于恶意内容

PHP数据过滤:有效过滤文件上传PHP数据过滤:有效过滤文件上传

29Jul2023

PHP数据过滤:有效过滤文件上传文件上传是Web开发中常见的功能之一,然而文件上传也是潜在的安全风险之一。黑客可能利用文件上传功能来注入恶意代码或者上传违禁文件。为了保证网站的安全性,我们需要对用户上传的文件进行有效的过滤和验证。在PHP中,我们可以使用一系列函数和技巧来过滤和验证用户上传的文件。下面是一些常用的方法和代码示例:检查文件类型在接收用户上传的文

PHP表单过滤:SQL注入防范与过滤PHP表单过滤:SQL注入防范与过滤

07Aug2023

PHP表单过滤:SQL注入防范与过滤引言:随着互联网的快速发展,Web应用程序的开发变得越来越普遍。在Web开发中,表单是最常见的用户交互方式之一。然而,表单提交数据的处理过程中存在着安全风险。其中,最常见的风险之一就是SQL注入攻击。SQL注入攻击是一种利用Web应用程序对用户输入数据进行处理不当而导致攻击者能够执行非授权数据库查询的攻击方式。攻击者通过在

PHP表单过滤:敏感词过滤与替换PHP表单过滤:敏感词过滤与替换

09Aug2023

PHP表单过滤:敏感词过滤与替换在开发Web应用程序的过程中,我们常常需要对用户提交的数据进行过滤和清理,以保护网站的安全性和用户的隐私。其中,对于敏感词的过滤与替换是一项非常重要的任务。本文将介绍如何使用PHP来实现敏感词的过滤与替换,并提供相应的代码示例。敏感词过滤与替换的原理敏感词过滤与替换是指将用户提交的数据中包含的敏感词进行检测,并将其替换为指定字

PHP表单过滤:XSS攻击防范与过滤PHP表单过滤:XSS攻击防范与过滤

11Aug2023

PHP表单过滤:XSS攻击防范与过滤随着互联网的快速发展,网页表单已经成为了我们日常生活中非常常见的一种交互方式。而表单提交所带来的安全隐患也逐渐显现出来。其中,最为常见且危害性较大的一种攻击方式就是跨站脚本攻击(XSS)。本文将为大家介绍如何使用PHP来进行表单过滤,以防范和过滤XSS攻击。什么是XSS攻击?跨站脚本攻击(Cross-SiteScript

See all articles