xemlock / htmlpurifier-html5
HTML Purifier 的 HTML5 支持
Requires
- php: >=5.2
- ezyang/htmlpurifier: ^4.8
Requires (Dev)
- php-coveralls/php-coveralls: ^1.1|^2.1
- phpunit/phpunit: >=4.7 <8.0
This package is auto-updated.
Last update: 2024-09-04 22:49:58 UTC
README
此库为 HTML Purifier 提供 HTML5 元素定义,符合 WHATWG 规范。
它是基于 HTML Purifier 的最完整 HTML5 兼容解决方案。除了提供最全面的元素定义集外,它还提供了 tidy/sanitization 规则,用于将输入转换为有效的 HTML5 输出。
安装
使用 Composer 安装,执行以下命令
composer require xemlock/htmlpurifier-html5
用法
最基本的使用方法与原始 HTML Purifier 相似。使用 HTMLPurifier_HTML5Config::createDefault()
工厂方法创建一个 HTML5 兼容的配置,然后将它传递给一个 HTMLPurifier
实例
$config = HTMLPurifier_HTML5Config::createDefault(); $purifier = new HTMLPurifier($config); $clean_html5 = $purifier->purify($dirty_html5);
要修改配置,你可以通过将配置数组传递给 HTMLPurifier_HTML5Config::create()
实例化配置,或者通过在已存在的配置实例上调用 set
方法。
例如,要允许带有 YouTube 视频的 IFRAME
,可以执行以下操作
$config = HTMLPurifier_HTML5Config::create(array( 'HTML.SafeIframe' => true, 'URI.SafeIframeRegexp' => '%^//www\.youtube\.com/embed/%', ));
或等价地
$config = HTMLPurifier_HTML5Config::createDefault(); $config->set('HTML.SafeIframe', true); $config->set('URI.SafeIframeRegexp', '%^//www\.youtube\.com/embed/%');
配置
除了 HTML Purifier 内置的 配置指令 外,还支持以下新指令
-
Attr.AllowedInputTypes
版本添加:0.1.12
类型:查找(或 null)
默认值:null
允许的输入类型列表,从规范中定义的类型中选择。默认情况下,设置是
null
,意味着没有对允许类型的限制。空数组意味着不允许显式type
属性,实际上将所有输入视为文本输入。 -
HTML.Forms
版本添加:0.1.12
类型:布尔值
默认值:false
是否允许用户输入中的表单元素,无论 %HTML.Trusted 值如何。请非常小心地使用此功能,因为在不信任的文档中启用表单可能会允许钓鱼攻击。
-
HTML.IframeAllowFullscreen
版本添加:0.1.11
类型:布尔值
默认值:false
是否允许在
iframe
标签上使用allowfullscreen
属性。它需要 %HTML.SafeIframe 或 %HTML.Trusted 为true
。 -
HTML.Link
版本添加:0.1.12
类型:布尔值
默认值:false
允许用户输入中的
link
标签,无论 %HTML.Trusted 值如何。这实际上允许link
标签而不允许其他未信任的元素。如果启用,
link
标签中的 URI 不会与 %URI.SafeLinkRegexp 中指定的白名单匹配(除非 %HTML.SafeIframe 也启用)。 -
HTML.SafeLink
版本添加:0.1.12
类型:布尔值
默认值:false
是否允许在不信任的文档中允许
link
标签。此指令必须通过 %URI.SafeLinkRegexp 配置允许的 URI 白名单,否则不允许任何link
标签。 -
HTML.XHTML
版本添加:0.1.12
类型:布尔值
默认值:false
尽管在HTML 4.01 / XHTML 1.0的上下文中已弃用,但在HTML5中,它用于启用对命名空间属性和XML自闭合标签的支持。
当启用时,它会导致在同一个元素上同时存在时,
xml:lang
属性优先于lang
属性。 -
URI.SafeLinkRegexp
版本添加:0.1.12
类型:字符串
默认值:null
一个PCRE正则表达式,将用于匹配一个
<link>
URI。只有当%HTML.SafeLink启用时,此指令才有效。以下是一些示例值:%^https?://localhost/%
- 允许本地URI使用
Attr.AllowedRel
来控制允许的链接关系类型。
支持的HTML5元素
除了HTML Purifier最初支持的HTML元素之外,此库还支持以下HTML5元素
<article>
、<aside>
、<audio>
、<bdi>
、<data>
、<details>
、<dialog>
、<figcaption>
、<figure>
、<footer>
、<header>
、<hgroup>
、<main>
、<mark>
、<nav>
、<picture>
、<progress>
、<section>
、<source>
、<summary>
、<time>
、<track>
、<video>
、<wbr>
以及添加到现有HTML元素的HTML5属性,例如
<a>
、<del>
、<fieldset>
、<ins>
、<script>
许可证
MIT许可证(MIT)。请参阅LICENSE文件。