PHP文件字符编码未声明错误

PHP文件字符编码未声明错误,php,Php,我有一个PHP文件,运行时会产生一个白色屏幕,错误如下: “未声明HTML文档的字符编码。如果文档包含US-ASCII范围以外的字符,则在某些浏览器配置中,文档将以乱码文本呈现。页面的字符编码必须在文档或传输协议中声明。” 看看这个网站上的其他答案,最常见的答案是 加 在PHP中,它仍然不起作用。当我删除所有php代码时,有人知道我的代码中有什么可能导致此错误吗?我是一个PHP新手,但仍然不知道我在做什么。我的完整php代码如下: $favisit = $favanimal = $age = $

我有一个PHP文件,运行时会产生一个白色屏幕,错误如下: “未声明HTML文档的字符编码。如果文档包含US-ASCII范围以外的字符,则在某些浏览器配置中,文档将以乱码文本呈现。页面的字符编码必须在文档或传输协议中声明。” 看看这个网站上的其他答案,最常见的答案是 加

在PHP中,它仍然不起作用。当我删除所有php代码时,有人知道我的代码中有什么可能导致此错误吗?我是一个PHP新手,但仍然不知道我在做什么。我的完整php代码如下:

$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;
            }
        }
    }
}