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?:///%- 允许本地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文件。