\ n和\ r \ n之间有什么区别(我知道它与操作系统有关),什么是回应跨平台工作的换行符的最佳方式?
编辑:为了回应Jarod,我将使用它来回显.txt日志文件中的换行符,但我相信我将来会使用它诸如将HTML makup回显到页面上之类的东西。
答案 0 :(得分:122)
使用PHP_EOL
常量,该常量自动设置为运行PHP脚本的操作系统的正确换行符。
请注意,此常量从PHP 5.0.2开始声明。
<?php
echo "Line 1" . PHP_EOL . "Line 2";
?>
为了向后兼容:
if (!defined('PHP_EOL')) {
switch (strtoupper(substr(PHP_OS, 0, 3))) {
// Windows
case 'WIN':
define('PHP_EOL', "\r\n");
break;
// Mac
case 'DAR':
define('PHP_EOL', "\r");
break;
// Unix
default:
define('PHP_EOL', "\n");
}
}
答案 1 :(得分:44)
\n
是一个Linux / Unix换行符。\r
是一款经典的Mac OS(非OS X)换行符。 Mac OS X使用上述unix \n
。\r\n
是Windows换行符。我通常只在我们的Linux系统上使用\n
,而且大多数Windows应用都可以处理它。
答案 2 :(得分:31)
Jarod的答案包含各种操作系统上\ r \ n的正确用法。这是一些历史:
术语“回车”和“换行”可追溯到使用电传手机而不是带有显示器和键盘的终端时。对于电传类型或打字机,“回车”意味着移动光标并返回到第一列文本,而“换行”意味着旋转滚轮以进入下一行。那时的区别是有道理的。今天,组合\ n,\ r,\ r \ n来表示一行文本的结尾是完全任意的。
答案 3 :(得分:7)
PHP4上PHP_EOL不需要向后兼容。
需要纠正Moore关于常量PHP_EOL可用性的声明:“...从PHP 5.0.2开始声明。”。
不,它自PHP 4.3.10开始就存在。任何仍然运行任何小于此的人都不应该在商业中。截至今天,没有人应该使用比PHP 5更小的东西!