\ n和\ r(我知道它与操作系统有关)之间有什么区别?回声在跨平台上工作的换行符的最佳方法是什么?
编辑:作为对Jarod的回应,我将使用ths在.txt日志文件中回显换行符,尽管我确定以后会在诸如将HTML makup回显到页面上使用它。
\n
是Linux / Unix换行符。\r
是经典的Mac OS(非OS X)换行符。Mac OS X使用上述unix\n
。\r\n
是Windows换行符。
我通常只\n
在我们的Linux系统上使用,并且大多数Windows应用程序都可以处理它。
使用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");
}
}
Jarod的答案包含\ r \ n在各种操作系统上的正确用法。以下是一些历史记录:
- \ r或带有十进制代码13的ASCII字符在“回车”之后被命名为CR。
- \ n(即十进制代码为10的ASCII字符)被命名为“换行符”,或在“换行符”之后为LF。
术语“回车”和“换行”可以追溯到使用电传打字机代替带显示器和键盘的终端时。对于电传打字机或打字机,“回车”是指移动光标并返回到文本的第一列,而“换行”是指旋转滚轴以到达下一行。当时,区分是有意义的。今天,表示一行文本结尾的\ n,\ r,\ r \ n组合完全是任意的。
PHP4上的PHP_EOL不需要向后兼容。
需要更正Moore关于恒定PHP_EOL可用性的声明:“ ...自PHP 5.0.2起声明。”。
不,自PHP 4.3.10起已经存在。任何仍在运行小于此值的人都不应在biz中工作。到今天为止,没有人应该使用PHP 5以下的版本!
本文地址:http://php.askforanswer.com/php-echohuanxingfu.html
文章标签:cross-platform , eol , line-breaks , newline , php
版权声明:本文为原创文章,版权归 admin 所有,欢迎分享本文,转载请保留出处!
文章标签:cross-platform , eol , line-breaks , newline , php
版权声明:本文为原创文章,版权归 admin 所有,欢迎分享本文,转载请保留出处!
评论已关闭!