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 或 |),这样可以报告所有需要的各级别错误。
例如,下面的代码关闭了用户自定义的错误和警告,执行了某些操作,然后恢复到原始的报错级别
这是因为你的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文本文件做个这样的标记。
微软的一些软件会做这种检测,但有些软件不做这种检测, 而把它当作正常字符处理。这就造成了乱码问题。
参考资料来源:百度百科-字符编码
这一句前不能向页面输出任何内容,意思是不能使用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" />了,同一个道理