2011年04月10日 星期日 14:31
我将我的php工程带入LINUX了。出现如下问题:
首先,session自身在Linux下就有问题。要求php文件在显示任何输出文字前就执行session_start函数。不然,会有警告。
如今,我又遇到了第二个问题。就是标题上的问题。要说明的是:这些问题在WAMP上是不存在的。进入session后(也就是登录了),写在php页面里的文字都变成了"?????",而从数据库送出的文字则正常显示。经google发现,网页文件应该使用utf-8 no BOM编码,而不能用普通的utf-8。BOM是问题之源。
但是Linux下,究竟有没有支持utf-8 no BOM编码的文本编辑器呢?
2011年04月10日 星期日 16:13
当然,找到了把utf-8修改成utf-8 no BOM的php代码:
<?
$pathname = $argv[1];//"www/head.php"; // change the pathname to your target file(s) which you want to remove the BOM.
$file_handler = fopen($pathname, "r");
$contents = fread($file_handler, filesize($pathname));
fclose($file_handler);
for ($i = 0; $i < 3; $i++){
$bytes[$i] = ord(substr($contents, $i, 1));
}
if ($bytes[0] == 0xef && $bytes[1] == 0xbb && $bytes[2] == 0xbf){
$file_handler = fopen($pathname, "w");
fwrite($file_handler, substr($contents, 3));
fclose($file_handler);
printf("%s BOM removed.<br/>\n", $pathname);
}
?>
可是,总不能每次都用这个修改吧?
2011年04月10日 星期日 16:16
刚刚试过,该一次就可以了。
2011年04月10日 星期日 19:23
我也碰到过这类问题,改成no bom就没问题了。
不过我是直接改的PHP文件属性
Zeuux © 2024
京ICP备05028076号