HTMLPurifier HTML标签属性预定义类型
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.com或file://path/to/file.
2. Bool (布尔值)
解释: 适用于布尔类型的属性,通常表示某个特性是否启用。
示例:
controls,disabled,checked,readonly,autofocus类型要求: 该属性的存在即为
true,不需要明确的值(HTML 中布尔属性只需出现即可有效)。
3. Length (长度)
解释: 用于定义具有尺寸的属性,如宽度、高度等。
示例:
width,height,border,margin,padding类型要求: 属性值可以是长度值(如
100px或50%)。
4. Color (颜色)
解释: 适用于颜色值的属性。
示例:
color,background-color,border-color类型要求: 该属性的值必须是有效的颜色值,例如
#ff0000或rgb(255, 0, 0)。
5. Int (整数)
解释: 适用于数字类型的属性,要求值为整数。
示例:
rows,cols,tabindex,value类型要求: 属性值必须是整数,例如
5或10。
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类型要求: 根据自定义的规则来确定属性值的格式。