Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php w3c错误,因为&;记录在案_Php_Html - Fatal编程技术网

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。