使用PHP来维护textarea的格式

问题描述 投票:2回答:4

是的,

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

即。如果有人在textarea写道,

亲爱的先生,

我在写connceti ....

非常感谢,

目前它通过电子邮件发送

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

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

有任何想法吗,

奇妙

php forms richtextbox
4个回答
1
投票

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

\n\r   or   \n   or   \r 

通过:

<br />

需要PHP函数:

nl2br()

0
投票

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

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

mail('[email protected]', 'Test Email', 'My Message...

with a line break!');

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

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

希望有所帮助, spryno724


0
投票

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

如果您要发送HTML邮件,则需要执行nl2br(htmlspecialchars($your_textarea_data))以添加必要的<br>标记。

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


0
投票

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

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

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

如果您要发送文本邮件,则必须确保不会删除换行符。如果您要发送HTML电子邮件,则必须确保为<br>标记替换这些换行符

© www.soinside.com 2019 - 2024. All rights reserved.