Php w3c错误,因为&;记录在案
可能重复:Php w3c错误,因为&;记录在案,php,html,Php,Html,可能重复: 我正在从数据库中提取记录以显示,但当我回显时,W3C验证程序会抱怨记录中存在(&I) 我在页面上显示良好。我可以做些什么来清理字符串吗?您可能看到的错误后面有以下解释: 在文档中找到实体引用,但未定义该名称的引用。这通常是由于拼错了引用名称、未编码的符号和或省略了尾随分号(;)造成的。此错误最常见的原因是URL中未编码的符号,如“URL中的符号”中的WDG所述 实体引用以符号(&)开头,以分号(;)结尾。如果要在文档中使用文字符号,则必须将其编码为“&;”(甚至在URL内部!
我正在从数据库中提取记录以显示,但当我回显时,W3C验证程序会抱怨记录中存在(&I)
我在页面上显示良好。我可以做些什么来清理字符串吗?您可能看到的错误后面有以下解释: 在文档中找到实体引用,但未定义该名称的引用。这通常是由于拼错了引用名称、未编码的符号和或省略了尾随分号(
;
)造成的。此错误最常见的原因是URL中未编码的符号,如“URL中的符号”中的WDG所述
实体引用以符号(&
)开头,以分号(;
)结尾。如果要在文档中使用文字符号,则必须将其编码为“&;
”(甚至在URL内部!)。请注意用分号结束实体引用,否则您的实体引用可能会与以下文本一起被解释。还要记住,命名实体引用区分大小写&Aelig;和æ是不同的字符
请注意该解释,并将和(意思是“开始字符引用”)替换为&代码>(表示“符号和字符”)
PHP有一个函数,用于将HTML中具有特殊含义的所有字符转换为字符引用,每当您有一些要放入HTML文档中的纯文本时,都应该使用这些字符引用。首先使用它:htmlspecialchars()
。使用&
而不是&
-验证器应该告诉您,尽管问题是当用户将数据放入数据库时,他们使用&而不是&;因此,我无法控制输入的数据。如果您无法控制输入的数据,您可能存在严重的XSS和SQL注入漏洞。@KeithPower-如果您允许用户手动编写HTML,并且在接受它之前没有确保它是有效的HTML,则可能会出现无效的HTML。