【发布时间】:2012-04-19 07:15:20
【问题描述】:
我正在设置一个php邮件发送脚本...
在添加不同的标题时,我在电子邮件中遇到了新行的符号(因为 标记不会这样做)...
所以我的问题是 \r\n 和 \n\n 有什么区别?
例如:
echo $var1 . " \r\n" . $var2 . "\n\n";
感谢您的帮助!
【问题讨论】:
我正在设置一个php邮件发送脚本...
在添加不同的标题时,我在电子邮件中遇到了新行的符号(因为 标记不会这样做)...
所以我的问题是 \r\n 和 \n\n 有什么区别?
例如:
echo $var1 . " \r\n" . $var2 . "\n\n";
感谢您的帮助!
【问题讨论】:
\r\n 是标准。
来自RFC 2822
消息被分成多行字符。一条线是一系列 用两个字符回车分隔的字符 和换行;也就是说,回车 (CR) 字符 (ASCII 值 13) 后紧跟换行 (LF) 字符 (ASCII 值 10)。 (回车/换行对通常写成 本文档为“CRLF”。)
另一个 \n\n 只是 2 行。
如果这是电子邮件标题,我相信它会是
echo $var1 . " \r\n" . $var2 . "\r\n\r\n";
这里\r\n\r\n是header和body的分隔符。它可以是 HTTP 或 SMTP
【讨论】:
\r 表示回车,\n 表示换行。更容易把它想象成打字机,\r 是当你从左到右推动纸架(也许它被称为马车???),所以你可以在行首打字,并且\n 将降低一行。传统上,windows 和基于 windows 的程序两者都需要,但现在大多数程序将 \n 识别为所有操作系统的新行。
【讨论】:
\r\n 是 windows 中的一个新行,\n\n 是类 UNIX 系统上的两个新行。
不要将换行符与 HTML 中存在的换行符混淆。它基本上只是在纯文本文件中看到的新行,但在浏览器中看不到。
【讨论】:
实际上 \r\n 是单个换行符的 windows 标准。 unix 标准是单个 \n 字符。
大多数情况下(在电子邮件中),您可以忽略 \r 字符,而仅将 \n 用于单个换行符。这也意味着 \n\n 表示双换行符。
【讨论】:
"\r\n" 主要用于 DOS,而在 UNIX 中则以 "\n" 表示。因此,如果您在 UNIX 中解释 "\n\n",它将相当于两个换行符。既然你提到了PHP,那么使用PHP预定义常量PHP_EOL是安全的。
【讨论】:
\n 是换行符,\r 是回车符。
http://en.wikipedia.org/wiki/Newline#In_programming_languages
【讨论】:
\r 回车将输入位置移回开头。然后\n 前进到新行。
【讨论】: