我正在使用PHP_EOL在PHP中为文本文件添加新行。我理解换行和回车之间的区别,但是当我导出文本文件并通过十六进制编辑器查看而不是看到0D0A(回车,换行)时,我只看到0A(换行)每一行。
通常情况下这不是问题,但上游程序需要在每一行的末尾看到0D0A。
我坚持这一点,并希望得到一些帮助。
我也试过" \ r \ n"但这会产生更糟糕的事情。而不是0D0A,它产生的是0A0A或\ n \ n!
另外需要注意的是,这是托管在Linux系统上并通过Windows下载(不知道操作系统是否重要下载)
由于
答案 0 :(得分:0)
取决于托管脚本的系统,\ n和\ r具有相同的含义,但是在非常陈旧的服务器上,PHP_EOL可能是未定义的,我始终使用此位代码来保存我的PHP_EOL:
<?php
if (!defined('PHP_EOL')) {
if (strtoupper(substr(PHP_OS,0,3) == 'WIN')) {
define('PHP_EOL',"\r\n");
} elseif (strtoupper(substr(PHP_OS,0,3) == 'MAC')) {
define('PHP_EOL',"\r");
} elseif (strtoupper(substr(PHP_OS,0,3) == 'DAR')) {
define('PHP_EOL',"\n");
} else {
define('PHP_EOL',"\n");
}
}
?>
因此,您可以毫无问题地使用PHP_EOL ... PHP_EOL表示\ n或\ r或\ r \ n ...
注意:PHP_EOL可以
1) on Unix LN == \n
2) on Mac CR == \r
3) on Windows CR+LN == \r\n
4) on Darwin LN == \n
达尔文是MacOS X,与Unix类似,并且具有相同的行尾...
希望获得帮助。