当前位置:首页 > 技术 > 正文内容

HTMLPurifier HTML标签属性预定义类型

代码老兵 技术 15

HTMLPurifier 会对html标签中的属性进行检查,对不符合要求的属性过滤,例如

$def->addAttribute('img', 'src', 'URI');
$def->addAttribute('img', 'alt', 'Text');
$def->addAttribute('img', 'height', 'Length');
$def->addAttribute('img', 'width', 'Length');

以下是常见的HTMLPurifier属性类型及其说明:

1. URI (统一资源标识符)

  • 解释: 适用于需要链接或 URL 的属性。

  • 示例: src, href, action, background, cite

  • 类型要求: 属性值必须是一个有效的 URI,如 http://example.comfile://path/to/file.

2. Bool (布尔值)

  • 解释: 适用于布尔类型的属性,通常表示某个特性是否启用。

  • 示例: controls, disabled, checked, readonly, autofocus

  • 类型要求: 该属性的存在即为 true,不需要明确的值(HTML 中布尔属性只需出现即可有效)。

3. Length (长度)

  • 解释: 用于定义具有尺寸的属性,如宽度、高度等。

  • 示例: width, height, border, margin, padding

  • 类型要求: 属性值可以是长度值(如 100px50%)。

4. Color (颜色)

  • 解释: 适用于颜色值的属性。

  • 示例: color, background-color, border-color

  • 类型要求: 该属性的值必须是有效的颜色值,例如 #ff0000rgb(255, 0, 0)

5. Int (整数)

  • 解释: 适用于数字类型的属性,要求值为整数。

  • 示例: rows, cols, tabindex, value

  • 类型要求: 属性值必须是整数,例如 510

6. Text (文本)

  • 解释: 适用于字符串类型的属性,允许任意文本。

  • 示例: title, alt, name, placeholder

  • 类型要求: 该属性的值可以是任何普通文本。

7. ID (ID 属性)

  • 解释: 适用于具有唯一标识符的属性。

  • 示例: id, for, name

  • 类型要求: 属性值必须是有效的 HTML ID,通常是一个字符串且具有唯一性。

8. Enum (枚举)

  • 解释: 适用于允许一组选项中的值的属性。

  • 示例: type, method, target

  • 类型要求: 属性值必须是允许值之一的枚举值,例如 type 属性的值可以是 button, submit, reset 中的一个。

9. Token (标记)

  • 解释: 适用于需要包含一个标记的属性。

  • 示例: rel, target

  • 类型要求: 属性值应是符合 HTML 标准的标记。

10. Data (数据)

  • 解释: 用于自定义数据属性。

  • 示例: data-*

  • 类型要求: 属性值通常是一个字符串,符合 data- 属性的格式,例如 data-user-id="123"

11. CSS (CSS 样式)

  • 解释: 适用于需要包含 CSS 样式的属性。

  • 示例: style

  • 类型要求: 属性值应该是有效的 CSS 样式字符串,如 color: red; font-size: 16px;

12. Length? (可选长度)

  • 解释: 允许为空的长度值。

  • 示例: min-width, max-height, padding-left

  • 类型要求: 值可以是有效的长度值(如 200px),也可以为空。

13. Media (媒体查询)

  • 解释: 适用于媒体查询相关属性。

  • 示例: media, mediaquery

  • 类型要求: 属性值通常是 CSS 媒体查询语法,例如 screen and (max-width: 600px)

14. DateTime (日期时间)

  • 解释: 用于表示日期或时间的属性。

  • 示例: datetime, datetime-local

  • 类型要求: 属性值应为有效的日期时间格式,如 2022-10-01T10:30:00

15. Script (脚本)

  • 解释: 用于表示脚本相关的属性。

  • 示例: src(在 <script> 标签中),type(脚本类型)

  • 类型要求: 该属性值应为有效的脚本路径或类型。

16. URL (URL 路径)

  • 解释: 用于 URL 的路径,类似 URI,但路径形式更加具体。

  • 示例: href, action, src

  • 类型要求: 该属性值通常为 URL 路径格式,例如 /images/logo.png

17. Custom (自定义类型)

  • 解释: 有些属性类型需要自定义解析,可以通过正则表达式或者自定义验证方式来实现。

  • 示例: pattern, regexp

  • 类型要求: 根据自定义的规则来确定属性值的格式。


标签: HTMLPurifier

相关文章

Linux crontab 详解

1) crontab 是什么cron 是 Linux 的定时任务守护进程;crontab 是用来编辑/查看“按时间周期执行命令”的表(cron table)。常见两类:用户 crontab:每个用户一份(crontab -e 编辑)系统级 crontab / cron.d:可指定执行用户(/etc/crontab、/etc/cron.d/*)2) crontab 时间...

富文本里可以允许的 HTML 属性

一、所有标签默认允许的安全属性(极少)class        (可选)id           (通常建议禁用)title️ 注意:id 容易被滥用做锚点注入,很多系统直接禁用class 允许的话最好只允许固定前缀(如 editor-*)二、a 标签允许属性<a href="" t...

Mac 安装 Node.js 指南

方法一:通过官网安装包(最简单,适合初学者)如果你只是想快速安装并开始使用,这是最直接的方法。访问 Node.js 官网。页面会显示两个版本:LTS (Recommended For Most Users):长期支持版,最稳定。建议选这个。Current:最新特性版,包含最新功能但可能不够稳定。下载 .pkg 安装包并运行。按照安装向导点击“下一步”即可完成。方法二:使用 Homebrew 安装(...

Dom\HTML_NO_DEFAULT_NS 的副作用:自动加闭合标签

在使用Dom\HTMLDocument时,Dom\HTML_NO_DEFAULT_NS 将禁止在解析过程中设置元素的命名空间, 此设置是为了与DOMDocument向后兼容而存在的。当使用它时,已知的一个副作用就是:自动加闭合标签例如 </img> 为什么会这样?当你使用:Dom\HTML_NO_DEFAULT_NS文档会变成 无命名空间模式,此时内部更接近 XML...

Laravel 事件和监听器创建

在 Laravel 中,使用 Artisan 命令创建 Events(事件) 和 Listeners(监听器) 是非常高效的。你可以通过以下几种方式来实现:1. 手动创建单个 Event如果你只想创建一个事件类,可以使用 make:event 命令:Bashphp artisan make:event UserRegistered执行后,文件将生成在 app/Even...

自定义域名解析神器 dnsmasq

什么是 dnsmasq?dnsmasq 是一个轻量级、功能强大的网络服务工具,专为小型和中等规模网络设计。它是一个综合的网络基础设施解决方案[1]。dnsmasq 能做什么?功能说明应用场景DNS 转发与缓存将 DNS 查询转发到上游服务器(ISP、Google DNS 等),并在本地缓存结果加快 DNS 查询速度,减少外部 DNS 流量本地 DNS解析本地网络设备的主机名,无需编辑&n...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。