mail()
当我将函数用于 PHP时,我无法弄清楚字符如何被转义的逻辑。我使用的是 PHP 5.2,magic_quotes_qpc 为 ON,runtime/sybase 为 OFF。这就是问题所在。
A 有一个接受文本输入的表单,我用它
mysqli_real_escape
来转义特殊字符,以便在 SQL 语句中使用,如下所示:$text = mysqli_real_escape_string($dbc, $_GET['text']);
如果我输入以下评论“我不会吃那个!” 进入表格,我在数据库中看到以下内容 - “我不会吃那个!”,这是我所期望的。如果我添加回车/换行,我在 phpMyAdmin 的数据库字段中看到的只是回车和没有特殊字符的换行(即没有“\r\n”或类似的东西)。
当我使用该
mail
功能发送消息(即mail($to, $subject, $text, $headers)
)时,我在电子邮件正文中收到了一些奇怪的东西:I wouldn\\\'t eat that\r\nI couldn\\\'t eat that
归根结底,我只希望电子邮件输出的格式与表单输入完全相同,换句话说:
I wouldn't eat that
I couldn't eat that
我不确定为什么在撇号之前有三次转义以及为什么 \r\n 出现在我的电子邮件中。