写入MySQL时保留TextArea的换行符

Hir*_*esh 101 html php mysql

我正在使用textarea来让用户输入评论.但是,如果用户输入新行,则在输出新行时不会显示新行.有没有办法让换行保持不变.

知道如何保留换行符吗?

sup*_*led 154

两个解决方案:

  1. PHP功能nl2br():

    例如,

    echo nl2br("This\r\nis\n\ra\nstring\r");
    
    // will output
    This<br />
    is<br />
    a<br />
    string<br />
    
    Run Code Online (Sandbox Code Playgroud)
  2. 将输入包装在<pre></pre>标签中.

    请参阅: W3C Wiki - HTML/Elements/pre

  • +1,刚刚在我的收藏夹上获得了PHP`nl2br()`的特权特权:) (2认同)

hir*_*oki 36

这是我使用的

$textToStore = nl2br(htmlentities($inputText, ENT_QUOTES, 'UTF-8'));
Run Code Online (Sandbox Code Playgroud)

$inputText是表单或textarea提供的文本. $textToStore是来自nl2brhtmlentities将要存储在数据库中的文本. ENT_QUOTES会转换双引号和单引号,所以你可以毫不费力地使用它们.

  • 我相信UTF-8现在是PHP的默认设置.但当然明确表达并不会有害. (2认同)