PHP文件插入header("Content-type: text/html; charset=utf-8"); 报错

PHP文件插入header("Content-type: text/html; charset=utf-8"); 报错
这是为什么呀?
我把文件保存的时候 用记事本 保存 UTF-8格式的,
把 HTML 代码 修改了 如下
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

只要我把 header("Content-type: text/html; charset=utf-8"); 插入到 php文件里 就报错。

那为高手帮我解释一下?

有人说 “你在使用 header() 前已经有内容输出, header() 前是不允许有如何内容输出的”

我用的是winXP的老记事本 , 不是 notepad2

header("Conten-type:text/html;charset=utf-8");

写错了 少个 t应该是

header("Content-type:text/html;charset=utf-8");

或者这样:

<?php

header("Content-type:text/html;charset=gb2312");

$dir="d:/";

$fp=opendir($dir);

while(($file=readdir($fp))!==false){

echo $file."<br>";

}

closedir($fp);

?>

扩展资料:

PHP中header('content-type:text/html;charset="utf-8')和error_reporting()的作用

1.header

PHP文件插入header("Content-type: text/html; charset=utf-8");
相当于页面里面的<meta http-equiv="Content-Type" content="text/html; charset=utf-8">;
目的:防止页面出现乱码

2.error_reporting

定义和用法:error_reporting()设置PHP的报错级别并返回当前级别。
函数语法:error_reporting(report_level)

如果参数 level 未指定,当前报错级别将被返回。下面几项是level可能的值:

1:E_ERROR 致命的运行错误。错误无法恢复,暂停执行脚本。

2:E_WARNING 运行时警告(非致命性错误)。非致命的运行错误,脚本执行不会停止。

4:E_PARSE 编译时解析错误。解析错误只由分析器产生。

8:E_NOTICE 运行时提醒(这些经常是你代码中的bug引起的,也可能是有意的行为造成的。)

16:E_CORE_ERROR PHP启动时初始化过程中的致命错误。

32:E_CORE_WARNING PHP启动时初始化过程中的警告(非致命性错)。

64:E_COMPILE_ERROR 编译时致命性错。这就像由Zend脚本引擎生成了一个E_ERROR。

128:E_COMPILE_WARNING 编译时警告(非致命性错)。这就像由Zend脚本引擎生成了一个E_WARNING警告。

256:E_USER_ERROR 用户自定义的错误消息。这就像由使用PHP函数trigger_error(程序员设置E_ERROR)

512:E_USER_WARNING 用户自定义的警告消息。这就像由使用PHP函数trigger_error(程序员设定的一个E_WARNING警告)

1024:E_USER_NOTICE 用户自定义的提醒消息。这就像一个由使用PHP函数trigger_error(程序员一个E_NOTICE集)

2048:E_STRICT 编码标准化警告。允许PHP建议如何修改代码以确保最佳的互操作性向前兼容性。

4096:E_RECOVERABLE_ERROR 开捕致命错误。这就像一个E_ERROR,但可以通过用户定义的处理捕获(又见set_error_handler())

8191:E_ALL 所有的错误和警告(不包括 E_STRICT) (E_STRICT will be part of E_ALL as of PHP 6.0)

任意数目的以上选项都可以用“或”来连接(用 OR 或 |),这样可以报告所有需要的各级别错误。
例如,下面的代码关闭了用户自定义的错误和警告,执行了某些操作,然后恢复到原始的报错级别

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-02-07

这是因为你的PHP文件不是以utf-8格式保存的,不要使用记事本来编辑你的PHP文件,可以使用notepad++来更改你的PHP文件的格式,步骤如下:

一、下载并安装notepad++,可以通过百度搜索找到notepad++的官网下载安装包并安装。

二、使用notepadd++打开你的PHP文件。即通过鼠标右键你的PHP文件并选择edit with notepad++。

三、打开你的PHP文件后,在菜单栏中选择编码,并选择使用utf-8编码,最后保存文件即可。

扩展资料

记事本中的utf-8格式

记事本在使用utf-8格式保存文件时,会使用utf-8有BOM编码。而我们通常所指的utf-8是指无BOM编码。这就是我们要用notepad++来将文件更改为utf-8格式的原因。

对于UTF-8来说,BOM标记的有无并不是必须的,是可选的,因为UTF8字节没有顺序,不需要标记.
也就是说一个UTF-8文件可能有BOM,也可能没有BOM。

微软在自己的UTF-8格式的文本文件之前加上了EF BB BF三个字节, windows上面的notepad等程序就是根据这三个字节来确定一个文本文件是ASCII的还是UTF-8的, 然而这个只是微软暗自作的标记, 其它平台上不一定会对UTF-8文本文件做个这样的标记。

微软的一些软件会做这种检测,但有些软件不做这种检测, 而把它当作正常字符处理。这就造成了乱码问题。

参考资料来源:百度百科-字符编码

本回答被网友采纳
第2个回答  推荐于2018-02-16
header("Content-type: text/html; charset=utf-8");
这一句前不能向页面输出任何内容,意思是不能使用echo等语句,也不能输出html标签或文字

如果在header前输出了<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />等标签或文字那肯定会报错

实际上你用了header("Content-type: text/html; charset=utf-8");
这一句的话就不需要用<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />了,同一个道理本回答被提问者和网友采纳
相似回答