我的代码:
$file = WWW_ROOT . 'CSV' . DS . 'customer_mobileNumber.txt';
$handle = fopen($file, "w");
$content = '';
foreach ($customers as $customer) {
$mobile = trim($customer['Customer']['mobile']);
$alt_mobile = trim($customer['Customer']['alt_mobile']);
if (!empty($mobile))
$content .= $customer['Customer']['mobile'] . PHP_EOL;
if (!empty($alt_mobile))
$content .= $customer['Customer']['alt_mobile'] . PHP_EOL;
}
fwrite($handle, $content);
fclose($handle);
即使我尝试使用" \ n"而不是PHP_EOL。但新行未添加到文本文件中。
答案 0 :(得分:2)
不同平台上的行结尾不同。众所周知的是:
\n
)\r
)\r\n
) PHP_EOL
常量保持代码在上执行的平台的换行常量。对于远程Web服务器,很可能是Linux,\n
。如果您随后将该文件下载到Mac,则不会看到CR字符,因此不会显示换行符。在Windows上,它取决于程序是否尊重非\r\n
换行符。
为防止在下载文件中出现这种情况,请始终使用完整的\r\n
行结尾,因为所有3个平台及其程序(通常)都会正确解析它们。最糟糕的情况是,如果将两个字符解析为换行符,某些程序可能会间歇性地显示空行。
请注意,历史上\r\n
是唯一正确的方法。在古代终端和好的旧点阵打印机上,回车符将光标或打印头(“托架”)返回到行的开头,而换行符将使输出单行输出。后来的平台简化了这一点,由于兼容性原因,MS决定坚持使用遗留符号。最后,传统符号是唯一被所有主要平台正确处理的符号。