- 积分
- 20
- 威望
-
- 金钱
-
- 注册时间
- 2011-7-17
- 在线时间
- 小时
- 最后登录
- 1970-1-1
|
测试环境:CENTOS 5.5 32 Bit lnmpa一键安装包。
问题:
通过fwrite函数向文件中写入换行符时(\r\n),通过Ultraedit打开时发现回车换行是?号,转到十六进行发现是写入的0D 0D 0A ,而正常环境下是0D 0A。我想这是导致我程序出现问题的原因所在。在程序生成的缓存文件中出现多次这种情况。其它LINUX平台没有发现此问题。请高人解决一下,为什么出现这种情况。
所用代码:
文件名i.php
<?php
$filename = 'test.php';
$somecontent = "这后面是换行符\r\n";
// 首先我们要确定文件存在并且可写。
if (is_writable($filename)) {
// 在这个例子里,我们将使用添加模式打开$filename,
// 因此,文件指针将会在文件的开头,
// 那就是当我们使用fwrite()的时候,$somecontent将要写入的地方。
if (!$handle = fopen($filename, 'a')) {
print "不能打开文件 $filename";
exit;
}
// 将$somecontent写入到我们打开的文件中。
if (!fwrite($handle, $somecontent)) {
print "不能写入到文件 $filename";
exit;
}
print "成功地将 $somecontent 写入到文件$filename";
fclose($handle);
} else {
print "文件 $filename 不可写";
}
?>
以上内容是i.php,
在同目录下建立text.php文件
其作用是向test.php文件中写入“这后面是换行符\r\n”\r\n写成了0D 0D 0A 多了个0D
请大家测试,因为有些程序用到缓存的时候会导致一些问题 |
|