【问题标题】:Detect a carriage return/new line in a text area with PHP使用PHP检测文本区域中的回车/换行
【发布时间】:2011-08-24 05:57:12
【问题描述】:

如何在 PHP 的文本区域中检测回车/换行符?

我想在将它们存储到数据库之前将它们替换为<br /> 标签。

【问题讨论】:

    标签: php html newline


    【解决方案1】:

    这里有一个 php 常量:

    When do I use the PHP constant "PHP_EOL"?

    还可以查看nl2br()

    【讨论】:

    • 好吧,我不知道为什么这被否决了,我会接受你的回答,因为它完全符合我的需要:)
    【解决方案2】:

    您可以使用nl2br()。请注意,它会将\n\r\n 转换为<br />\n

    【讨论】:

      【解决方案3】:

      nl2br吧;)

      PS:插入数据库时​​不要应用该函数(这里只使用SQL转义)。只要您想将文本输出到 HTML,就应用该函数。

      【讨论】:

      • PS+1。使用户以后编辑值更容易。
      【解决方案4】:

      试试这个:

      $text_area = str_replace(PHP_EOL,'<br/>', $text_area);
      

      使用str_replace

      【讨论】:

      • 它适用于我。我不得不用其他一些标签替换回车
      【解决方案5】:

      您可以使用nl2br() 函数。这将根据需要插入&lt;br/&gt;

      我通常倾向于将 HTML 格式排除在 DB 之外(除非它在源材料中)。您永远不知道何时可能要将干净版本用于其他目的。

      【讨论】:

        【解决方案6】:

        我的建议:“不要这样做”。 只需将换行符存储在数据库中,但仅在生成输出时将其呈现为&lt;br /&gt;。否则,当您想在不同的上下文中使用该数据时,您将遇到替换 &lt;br /&gt; 的问题。

        为此,您可以使用nl2br 见:http://php.net/manual/en/function.nl2br.php

        【讨论】:

          【解决方案7】:

          我知道这是 v-old 但只是想在这里做一个笔记,甚至可能是为了我自己!这里的 eols 需要用双引号括起来,否则就行不通了。见下文...

          $eols = array(",","\n","\r","\r\n");
          $text_area = str_replace($eols,'<br />',$_POST['text_area']);
          

          希望这可以帮助别人不要像我刚刚花了 30 分钟那样浪费时间!

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2012-06-12
            • 1970-01-01
            • 1970-01-01
            • 2011-01-19
            • 2011-03-05
            • 2014-08-14
            • 2011-02-18
            • 1970-01-01
            相关资源
            最近更新 更多