3

情况如下。我在 MySQL 中存储了一封纯文本电子邮件,其中包含换行符为\r\n. 当我的 php 脚本需要发送邮件时,它首先填写一些参数,sprintf然后使用标准mail()函数发送邮件。

我遇到的问题是电子邮件客户端(在我的例子中是雷鸟)显示这些换行符而不是解释它们。

为了测试我的脚本,我在邮件中硬编码了一个句子。当我这样做时,邮件被正确解释。我的第一个问题是 MySQL 转义了反斜杠,所以我尝试做 astr_replace("\\\\", "\\", $str)但这无济于事。

我显然做出了错误的假设或愚蠢的错误,但我没有看到。可能是什么问题呢?

4

3 回答 3

1

尝试像这样替换它 str_replace('\n\r', "\n\r"); 如果 \n\r 字符在您的消息中保存为四个单独的字符,它可能会解决您的问题。如果您使用例如 phpmyadmin 输入它们,它们将被保存为 4 个字符,而不是您期望的 2 个字符。

希望能帮助到你!

于 2012-07-13T11:40:30.390 回答
0

尝试使用 var_dump 打印消息,这可能会显示有关字符串值的更好信息。

于 2012-07-13T11:10:38.063 回答
0

也许使用它来绑定和删除斜线:

stripslashes($str);
于 2012-07-13T11:25:42.487 回答