PHP文件字符编码未声明错误
我有一个PHP文件,运行时会产生一个白色屏幕,错误如下: “未声明HTML文档的字符编码。如果文档包含US-ASCII范围以外的字符,则在某些浏览器配置中,文档将以乱码文本呈现。页面的字符编码必须在文档或传输协议中声明。” 看看这个网站上的其他答案,最常见的答案是 加 在PHP中,它仍然不起作用。当我删除所有php代码时,有人知道我的代码中有什么可能导致此错误吗?我是一个PHP新手,但仍然不知道我在做什么。我的完整php代码如下:PHP文件字符编码未声明错误,php,Php,我有一个PHP文件,运行时会产生一个白色屏幕,错误如下: “未声明HTML文档的字符编码。如果文档包含US-ASCII范围以外的字符,则在某些浏览器配置中,文档将以乱码文本呈现。页面的字符编码必须在文档或传输协议中声明。” 看看这个网站上的其他答案,最常见的答案是 加 在PHP中,它仍然不起作用。当我删除所有php代码时,有人知道我的代码中有什么可能导致此错误吗?我是一个PHP新手,但仍然不知道我在做什么。我的完整php代码如下: $favisit = $favanimal = $age = $
$favisit = $favanimal = $age = $area = "";
$viserror = $anierror = $ageerror = $areaerror = "";
$errormessage = $extra = "";
$errorlist = [$viserror,$anierror,$ageerror,$areaerror]
$counter = 0;
if ($_SERVER["REQUEST_METHOD"]=="POST") {
if (empty($_POST["favisit"])) {
$viserror = " the favorite bit of your visit";
} else {
$favisit = test_input($_POST["favisit"]);
}
if (empty($_POST["favanimal"])) {
$anierror = " your favorite animal";
} else {
$favanimal = test_input($_POST["favanimal"]);
}
if (empty($_POST["age"])) {
$ageerror = " your age";
} else {
$age = test_input($_POST["age"]);
}
if (empty($_POST["area"])) {
$areaerror = " the area where you live";
} else {
$area = test_input($_POST["area"]);
}
}
foreach($errormessage as $error) {
if ($error == "") {
$counter = $counter+1
}
}
if ($counter != 0) {
$errormessage = "You have not filled out"
if ($counter == 1) {
foreach($errormessage as $error) {
if ($error == "") {
$errormessage = $errormessage . $error . ".";
}
}
} else {
$extra = ","
foreach($errormessage as $error) {
if ($error == "") {
if ($counter == 1) {
$extra = " or"
}
$errormessage = $errormessage + $extra + $error + ".";
$counter = $counter -1;
}
}
}
}
再说一次,我还是PHP的新手,所以这可能是一个愚蠢的错误,我无法理解。提前谢谢 您有多个PHP错误。例如缺少
代码>在几行上。因此,您的请求可能会返回500,并且您的错误日志中会出现错误
这意味着您得到的是一个空的主体(很明显,主体中没有任何元声明。错误是正确的,但有误导性)
你可能会从中受益
示例:
$counter=$counter+1
需要一个代码>
$errormessage=“您尚未填写”
需要一个代码>
$errormessage=$errormessage+$extra+$error+”
应该与
连接,而不是+
$extra=“,”
需要一个代码>
$extra=“或”
需要一个代码>
您有多个PHP错误。例如缺少代码>在几行上。因此,您的请求可能会返回500,并且您的错误日志中会出现错误
这意味着您得到的是一个空的主体(很明显,主体中没有任何元声明。错误是正确的,但有误导性)
你可能会从中受益
示例:
$counter=$counter+1
需要一个代码>
$errormessage=“您尚未填写”
需要一个代码>
$errormessage=$errormessage+$extra+$error+”
应该与
连接,而不是+
$extra=“,”
需要一个代码>
$extra=“或”
需要一个代码>
试试这个:$errormessage=$errormessage+$extra+$error+”
应该使用
s而不是+
s。这个错误听起来像是来自。。。这不是标准的PHP错误消息。我猜您在使用该DevServer时出现了一个PHP错误,并且显示错误。。。由于PHP会将错误消息作为HTML片段(默认情况下)输出,因此您将从DevServer获取该编码消息。在将任何内容写入HTML缓冲区之前,请确保设置了头。(例如:纯html或echo),确保您的apache服务器不会更改标头(通过查看http标头(在chrome F12和网络选项卡中并刷新)),您应该做两件重要的事情。使用一个IDE来突出显示错误并打开PHP显示错误。如果您是php新手,大多数开发人员都有这两方面的知识试试这个:$errormessage=$errormessage+$extra+$error+”
应该使用
s而不是+
s。这个错误听起来像是来自。。。这不是标准的PHP错误消息。我猜您在使用该DevServer时出现了一个PHP错误,并且显示错误。。。由于PHP会将错误消息作为HTML片段(默认情况下)输出,因此您将从DevServer获取该编码消息。在将任何内容写入HTML缓冲区之前,请确保设置了头。(例如:纯html或echo),确保您的apache服务器不会更改标头(通过查看http标头(在chrome F12和网络选项卡中并刷新)),您应该做两件重要的事情。使用一个IDE来突出显示错误并打开PHP显示错误。如果您是php新手,大多数开发人员都有这两方面的知识使用带有语法高亮显示和linter的适当代码编辑器当然也会帮到你!我用来编写代码的程序通常填写;所以我养成了懒惰的习惯。只是为了确保我把它们放进去了,它工作得很好,谢谢你使用一个带有语法高亮显示和linter的合适的代码编辑器肯定也会帮助你。是的,非常肯定!我用来编写代码的程序通常填写;所以我养成了懒惰的习惯。只是为了确保我把它们放进去了,效果很好,谢谢
header('Content-type: text/html; charset=utf-8');
$favisit = $favanimal = $age = $area = "";
$viserror = $anierror = $ageerror = $areaerror = "";
$errormessage = $extra = "";
$errorlist = [$viserror,$anierror,$ageerror,$areaerror]
$counter = 0;
if ($_SERVER["REQUEST_METHOD"]=="POST") {
if (empty($_POST["favisit"])) {
$viserror = " the favorite bit of your visit";
} else {
$favisit = test_input($_POST["favisit"]);
}
if (empty($_POST["favanimal"])) {
$anierror = " your favorite animal";
} else {
$favanimal = test_input($_POST["favanimal"]);
}
if (empty($_POST["age"])) {
$ageerror = " your age";
} else {
$age = test_input($_POST["age"]);
}
if (empty($_POST["area"])) {
$areaerror = " the area where you live";
} else {
$area = test_input($_POST["area"]);
}
}
foreach($errormessage as $error) {
if ($error == "") {
$counter = $counter+1
}
}
if ($counter != 0) {
$errormessage = "You have not filled out"
if ($counter == 1) {
foreach($errormessage as $error) {
if ($error == "") {
$errormessage = $errormessage . $error . ".";
}
}
} else {
$extra = ","
foreach($errormessage as $error) {
if ($error == "") {
if ($counter == 1) {
$extra = " or"
}
$errormessage = $errormessage + $extra + $error + ".";
$counter = $counter -1;
}
}
}
}