【问题标题】:No whitespaces or line breaks in HTML textareaHTML 文本区域中没有空格或换行符
【发布时间】:2015-06-22 21:23:06
【问题描述】:

我有一个 html textarea,它通过电子邮件将输入的文本发送给我。 问题是来自文本区域的输入作为连续字符串发送/接收,没有空格或换行符。 UTF-8 字符也会被忽略。

我尝试str_replace(" ", &nbsp, $message) 试图将空格更改为 html 空格字符,但没有成功。

为了修复让 textarea 支持 UTF-8,我尝试将 accept-charset="utf-8" 放在表单声明中,但也没有运气。

我在网上也尝试了其他几个解决方案,但都没有成功

【问题讨论】:

  • 你在发送 html 电子邮件吗?
  • &nbsp 是错字吗?应该是 。你能发布更多你的代码吗?我想不出所有空格都会被删除的实例。
  • @Dagon 我正在使用标准的 PHP mail() 函数。不确定它以什么格式发送电子邮件。
  • @chris85 是的,这是一个错字。对此感到抱歉。
  • 这取决于你设置的标题,你真的需要在这个问题中添加一些代码

标签: php html forms utf-8 textarea


【解决方案1】:

修复换行符的快速方法 是

$yourtext = str_replace('\n','<br>',$yourtext);

【讨论】:

【解决方案2】:

试试str_replace(" ", '&amp;nbsp;', $message)

【讨论】:

  • 最好解释一下代码以及为什么你认为它有效。
  • 这会将 &nbsp 替换为空格。所以当我收到邮件时,“test test test”变成了“test&nbsptest&nbsptest”。
【解决方案3】:

解决了这个问题。原来是filter_var($_POST['message'], FILTER_SANITIZE_EMAIL);是罪魁祸首

【讨论】:

    猜你喜欢
    • 2021-07-29
    • 2010-09-22
    • 2011-06-06
    • 2010-09-09
    • 2014-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多