【问题标题】:Capture newline from a textarea input从文本区域输入捕获换行符
【发布时间】:2011-04-30 20:36:06
【问题描述】:

我的 html 中有一个 textarea 表单。如果用户在 2 个句子之间点击输入,则数据应该被转移到我的 PHP 中。

当前如果用户输入:

Apple
Google
MS

而我的 PHP 代码是:

$str = $_POST["field"];

echo $str;

我明白了

Apple Google MS 

作为输出。我希望输出是这样的

Apple
Google
MS

我该怎么办?

【问题讨论】:

    标签: php html


    【解决方案1】:

    改用nl2br()

    echo nl2br($str);
    

    【讨论】:

    • 更好。不知道有专门用于此的内置函数。
    【解决方案2】:

    换行符应该包含在您从$_POST["field"] 获得的字符串中。但是,如果您随后将该字符串用作 HTML 中的输出,则换行符将被视为空格。要强制换行,请使用preg_replace("/\n/", "<br />", $str)

    【讨论】:

    • 那个 preg 会失败(没有分隔符),为什么不只是str_replace()
    • True - 修复了这个问题。无论如何,你的答案更好。但是,解释原因可能有助于更好地理解修复。
    【解决方案3】:

    这是因为当您回显它时,它会显示为 HTML。 \n 字符被解释为空格。如果您查看源代码,您将看到所需的输出。

    要将\n 转换为<br>,请使用:

    echo nl2br( $str );
    

    【讨论】:

      猜你喜欢
      • 2010-09-22
      • 2010-12-26
      • 2021-04-30
      • 1970-01-01
      • 1970-01-01
      • 2017-02-13
      • 2016-10-20
      • 2013-03-01
      • 2011-09-14
      相关资源
      最近更新 更多