ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
## **AggressivelyFixLt** 此指令启用HTML Purifier可执行的积极的预过滤器修复,以确保打开的尖括号在解析阶段不会被杀死。启用此功能将导致每个解析的HTML文档有两个preg\_replace\_callback调用和至少两个preg\_replace调用;如果您的用户使用格式正确的HTML,则可以将此指令设置为false。使用DirectLex时,这无效。 **注意:**在HTML Purifier 3.2.0中,此伪指令的默认设置从false变为true。 ## **AggressivelyRemoveScript** 该指令可以主动删除脚本标记的预过滤器。对于安全性而言,这不是必需的,但是它可以帮助解决libxml中的一个错误,该错误中脚本部分中的嵌入式HTML元素导致解析器阻塞。若要还原为4.9.0之前的行为,请将其设置为false。如果[%Core.Trusted](http://htmlpurifier.org/live/configdoc/plain.html#Core.Trusted)为true,[%Core.RemoveScriptContents](http://htmlpurifier.org/live/configdoc/plain.html#Core.RemoveScriptContents)为false或[%Core.HiddenElements](http://htmlpurifier.org/live/configdoc/plain.html#Core.HiddenElements)不包含脚本,则此伪指令无效。 ## **AllowHostnameUnderscore** 根据RFC 1123,主机名中不允许使用下划线。(这与DNS规范RFC 2181相对应,该规范允许使用下划线。)但是,大多数浏览器在遇到主机名中带有下划线的情况下,都会做正确的事情,因此,编写一些效果较差的网站时,期望这样做工作。将此参数设置为true会放宽我们允许的字符检查,以便允许使用下划线。 ## **CollectErrors** 是否收集过滤文档时发现的错误。这是向用户提供反馈的有用方法。**警告:**目前,此功能尚不完整,尚处于试验阶段,尚未实现许多可能的错误消息。它不会造成任何问题,但也可能不会帮助您的用户。 ## **ColorKeywords** 将颜色名称查找数组转换为与颜色相对应的六位数十六进制数字,并带有前面的哈希标记。解析颜色时使用。查找以不区分大小写的方式完成。 ## **ConvertDocumentToFragment** 此参数确定过滤器是否将包含html和body标签的完整文档输入转换为仅body标签内容的片段。该参数只是HTML Purifier在边缘情况下可以执行的操作:对于大多数输入,此处理不是必需的。 ## **DirectLexLineNumberSyncInterval** 指定DirectLex行号跟踪实现在尝试通过手动计算所有先前的新行来重新同步当前行数之前应处理的令牌数。当为0时,此功能被禁用。较低的值会降低性能,并且仅在计数算法有错误时才必须这样做(在这种情况下,应将其报告为错误)。当禁用[%Core.MaintainLineNumbers](http://htmlpurifier.org/live/configdoc/plain.html#Core.MaintainLineNumbers)或未使用DirectLex时,这无效。 ## **DisableExcludes** 该指令禁用SGML样式的排除,例如,`<object>`在`<pre>`标签的任何后代中的排除。禁用排除将允许某些无效文档通过HTML Purifier,但是HTML Purifier在处理过程中也不太可能意外删除大型文档。 ## **EnableIDNA** 允许在URL中使用国际域名。此配置选项要求安装PEAR Net\_IDNA2模块。它通过对任何国际化的主机名进行punycoding来实现最大的可移植性。 ## **Encoding** 如果由于某种原因您无法将所有网页都转换为UTF-8,则可以将此指令用作权宜之计的兼容性更改,以使HTML Purifier处理非UTF-8输入。此技术有一个明显的缺陷:绝对不会保留所选字符编码之外的任何字符,甚至不会保留那些与号和转义符的字符(这是由于UTF-8特定的*功能*会自动解析所有实体),因此非常无用除了大多数I18N盲应用程序之外,其他任何功能都可以使用,尽管[%Core.EscapeNonASCIICharacters](http://htmlpurifier.org/live/configdoc/plain.html#Core.EscapeNonASCIICharacters)提供了另一种折衷方法来解决此问题。如果未启用iconv,则此指令仅接受ISO-8859-1。 ## **EscapeInvalidChildren** **警告:**从4.6.0版本开始,此配置选项不再起作用。 如果为true,则发现在父元素的上下文中不允许的子元素将被转换为文本,就好像它是ASCII一样。如果为false,则将保留该元素和所有内部标签,尽管会保留文本。除保留子节点外,没有其他选择。 ## **EscapeInvalidTags** 设置为true时,无效标签将作为纯文本写回到文档中。否则,它们将被静默丢弃。 ## **EscapeNonASCIICharacters** 此伪指令通过将所有非ASCII字符盲目转换为十进制数字实体,然后再将其转换为本机编码,从而克服了[%Core.Encoding](http://htmlpurifier.org/live/configdoc/plain.html#Core.Encoding)的缺陷。这意味着即使可以以非UTF-8编码表达的字符也将被实体化,对于像Big5这样的编码来说,这可能是真正的缺点。尽管几乎所有编码都是这种情况,但它也假定ASCII编码可用。无论如何,请使用UTF-8! ## **HiddenElements** 此伪指令是元素的查找数组,当HTML定义不允许它们时,应将其内容删除。例如,`script`标签的内容通常不会显示在文档中,因此,如果要删除脚本标签,则应将其内容删除。这与`b`标记相反,标记定义了一些表示上的更改,但未隐藏其内容。 ## **Language** ISO 639语言代码,可用于HTML Purifier中的可本地化内容,主要是错误报告。当前只有英文(en)翻译,因此此指令目前无用。 ## **LegacyEntityDecoder** 在HTML Purifier 4.9.0之前,通过对所有解码后的版本在HTML下没有特殊含义的实体执行全局搜索替换来对实体进行解码,然后将其替换为解码后的版本。即使所有实体都没有尾随分号,我们也将进行匹配,但是前提是没有尾随字母数字字符。 ## **LexerImpl** 此参数确定可以使用哪种词法分析器实现。有效值为: *空值* 建议使用,将根据您的PHP版本和配置自动检测lexer实现。 *字符串*词法标识符 这是手动覆盖实现的一种苗条方法。当前公认的值是:DOMLex(默认PHP5实现)和DirectLex(默认PHP4实现)。仅当您知道自己在做什么时才使用此功能:通常,自动检测将管理您甚至不知道的情况。 *对象*词法分析器实例 超级进阶:您可以指定自己的自定义实现,以实现定义的接口`HTMLPurifier_Lexer`。我可能会删除该选项,只是因为我不希望任何人使用它。 ## **MaintainLineNumbers** 如果为true,HTML Purifier会将行号信息添加到所有令牌。启用错误报告后,此功能很有用,但会导致严重的性能下降,因此在不必要时不应使用。该指令必须与DirectLex词法分析器一起使用,因为DOMLex词法分析器尚不支持此功能。如果该值为空,则将基于其他配置选择适当的值。 ## **NormalizeNewlines** 是否将换行符标准化为操作系统默认值。如果为`false`,HTML Purifier将尝试保留混合的换行文件。 ## **RemoveInvalidImg** 该指令启用了在`img`标签中的抢先URI检查,因为未授权属性验证策略从文档中删除元素。通过设置为false,可恢复1.3.0之前的行为。 ## **RemoveProcessingInstructions** 与其直接`<? ... ?>`删除表格中的处理说明,不如将其完全删除。如果您要验证的HTML包含XML处理指令问题,这可能很有用,但是,对于尝试发布PHP代码段的人来说,它也可能对用户不友好。