【发布时间】:2016-06-28 14:43:51
【问题描述】:
我在使用 PHP 的邮件功能时遇到了一个我无法弄清楚的奇怪问题。电子邮件正文中的每一行都由一两行新行分隔,但如果我在其中一行上使用三元运算符,则该行不会中断。代码如下所示:
$body = 'This line breaks properly' . "\r\n" .
'This line also breaks properly' . "\r\n" .
'This one as well' . "\r\n\r\n" .
'This line ' . ( $value == true ? 'breaks' : 'does not break' ) . ' properly' . "\r\n" .
'This one works fine' . "\r\n" .
'New line again';
mail( 'me@example.com', 'Test Email', $body, $headers );
我得到的输出是:
This line breaks properly
This line also breaks properly
This one as well
This line does not break properly This one works fine
New line again
我已经两次和三次检查以确保我在每个\r\n 周围加上双引号,我在三元组中尝试了( $value == true ),并且我尝试在标题字符串中设置Content-Type: text/plain;。它仅在我完全删除三元运算符时才有效。如果这与正在发生的事情有任何关系,我正在使用 PHP 5.5.36。
【问题讨论】:
-
@JoseManuelAbarcaRodríguez 我也试过那个,但我忘了提。
-
@JoseManuelAbarcaRodríguez 不。这条线还没有断。
-
在phpfiddle.org 中试试你的代码,它对我有用,所以,就是你。
-
为什么不用双引号将整个字符串块包裹起来,而不是用单引号和双引号连接字符串,这只是为了混淆。当您知道双引号用于字符串内容的某些方面时,为什么还要使用单引号?
标签: php