【发布时间】:2010-12-23 08:47:07
【问题描述】:
注意:如果这是一个非常简单的问题,我很抱歉,但我对我的代码格式有点强迫症。
我有一个类,它有一个函数,它返回一个字符串,该字符串将构成电子邮件的正文。我希望此文本格式化,使其在电子邮件中看起来正确,但也不会使我的代码看起来很时髦。这就是我的意思:
class Something
{
public function getEmailText($vars)
{
$text = 'Hello ' . $vars->name . ",
The second line starts two lines below.
I also don't want any spaces before the new line, so it's butted up against the left side of the screen.";
return $text;
}
}
但也可以写成:
public function getEmailText($vars)
{
$text = "Hello {$vars->name},\n\rThe second line starts two lines below.\n\rI also don't want any spaces before the new line, so it's butted up against the left side of the screen.";
return $text;
}
但是换行和回车是怎么回事?有什么不同? \n\n 是否等同于 \r\r 或 \n\r?当我在线条之间创建线条间隙时应该使用哪个?
然后是输出缓冲和heredoc语法的选项。
如何处理在对象中使用长多行字符串?
【问题讨论】:
-
我一直认为 \n 是 Unix 中的换行符 \r 是 OS/X 之前的 MacOS 上的换行符,而 \r\n 是 Windows 上的换行符。此外,考虑到这将是一个显示在电子邮件消息中的字符串,您需要确保无论您采用哪种方式,它都能在大多数命令邮件客户端上正确显示。提示:Outlook 在某些情况下会删除额外的换行符,因此您不会总是得到预期的结果。
-
不确定这是否那么重要,但最初这两个“换行”字符来自使用两个字符的物理打字机。一个用于将马车放回页面的左侧(CR - 0xD),另一个导致页面转到下一行(LF - 0xA。)我相信有人对此了解更多但是。