使用PHP来维护textarea的格式

时间:2011-04-11 16:08:50

标签: php forms richtextbox

<何>何浩,

可以使用PHP表单维护文本区域的格式,以便将发送给管理员的邮件格式化得很好。

即。如果有人在textarea中写道,

  亲爱的先生,

     

我在写connceti ....

     

非常感谢,

目前以电子邮件发送

  亲爱的先生,我正在写作...   非常感谢,

如果没有,那么我认为解决方案是Rich Text Editor替换textarea。这一切都很好,但如果javascript被禁用怎么办。

任何想法,

非凡

4 个答案:

答案 0 :(得分:1)

您可能需要更换(取决于系统):

\n\r   or   \n   or   \r 

人:

<br />

需要PHP函数:

nl2br()

答案 1 :(得分:0)

此时似乎您的电子邮件可能会以HTML格式发送。如果给定输入不是HTML格式,HTML格式会自动删除换行符。如果您不想要HTML格式,请尝试发送纯文本邮件,然后您的换行符仍应显示。

要以纯文本形式发送消息,只需使用PHP mail()函数,无需任何其他标题:

mail('john@gmail.com', 'Test Email', 'My Message...

with a line break!');

如果您仍然遇到问题,请尝试集成HTML WYSIWYG编辑器,例如功能强大的TinyMCE编辑器。

注意:要使HTML编辑器正确发送电子邮件,需要以HTML格式发送电子邮件消息(您需要提供标题作为mail() function中的第四个参数)。这肯定会解决您的换行问题。

希望有所帮助,
spryno724

答案 2 :(得分:0)

浏览器和PHP都保留了<textarea>中的换行符。可能他们在电子邮件正文中迷失了,或者即使他们在那里也没有被浏览器显示。

如果您要发送HTML邮件,则需要nl2br(htmlspecialchars($your_textarea_data))添加必要的<br>代码。

如果您要发送纯文本邮件,请检查您是否混合了LF(Unix风格)和CR + LF(DOS风格)换行序列,这可能会使您的电子邮件客户端感到困惑。

答案 3 :(得分:0)

这完全取决于您的电子邮件格式。

当您键入该文本时,它实际上看起来像这样

Dear Sir, \n
\n
I am writing in connceti....\n
\n
Many Thanks,

如果您要发送短信,则必须确保不会删除换行符。如果您要发送HTML电子邮件,则必须确保替换<br>代码的这些换行符