【问题标题】:Line break in Text Area [duplicate]文本区域中的换行符[重复]
【发布时间】:2012-09-02 23:29:39
【问题描述】:

可能重复:
line breaks in a textarea

我有一个文本区域,用户可以在其中输入段落中的一些描述。现在我希望如果用户想要添加两个段落,他将按回车添加换行符。但是当我们将该值存储在数据库中时,该换行符不会被保存。

我想问一下,如果用户按回车键添加换行符,那么它也应该保存在数据库中。

我正在使用 php。

谢谢

【问题讨论】:

    标签: php textarea line-breaks


    【解决方案1】:

    一个换行符应该是<br />,两个应该表示一个段落换行符。因此,只需在代码中查找您的两个 "\n\n" 语句,并将所有这些语句替换为 </p><p>,然后将 <p></p> 标记包裹在整个字符串中。

    以下是应该执行的一系列步骤:

    1. 提交到你的PHP服务器并设置$input = $_POST['input'];
    2. 执行$input = trim($input) 以删除输入开头和结尾的所有额外换行符和空格。
    3. 然后做$input = str_replace($input, "\n\n",'</p><p>');
    4. 然后做$input = '<p>' . $input . '</p>';

    ---- 编辑----

    最后要记住的一件事。如果您不想在用户输入两个以上连续换行符时出现一堆空的<p></p> 标签,那么您需要注意这一点。

    要解决这个问题,请改为这样做。

    $input = preg_replace("/\n(?:\n)+/",'</p><p>', $input)
    //you may need to set the PHP PCRE multiline flag for this to work
    

    【讨论】:

      【解决方案2】:

      你可以使用 mysql_real_escape_string($input);这也可能会节省换行符。

      【讨论】:

        【解决方案3】:

        使用 nl2br($content_here);检索时

        http://php.net/manual/en/function.nl2br.php

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2023-03-14
          • 1970-01-01
          • 2022-01-25
          • 2021-07-29
          相关资源
          最近更新 更多