session和cookie之前不能有任何输出;
如果以后遇到错误,报告:Cannot send session cookie - headers already sent by....... 可以知道在输出session和cookie之前一定有输出,有可能是空行、空格或bom或者其他。
utf8编码一个汉字占3个字节,所以在utf8编码时候,一个bom也是占3个字节。
举例,如果一个文件1.php 代码内容如下:
<?php
/****
测试返回值
****/
$str = 'abcdefg';
echo str_shuffle($str);
?>
1.php保存时候选择的是utf8 with bom,则$str的length是10而不是7
在xp下,用记事本创建utf8文件的时候,前面多了3个字节,这3个字节不用来显示,是用来辨识编码用的,EF BB 8F告诉记事本,这是utf8编码的。