1

可能重复:
文本区域中的换行符

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

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

我正在使用 php。

谢谢

4

3 回答 3

5

一个换行符应该是一个<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
于 2012-09-10T05:47:28.557 回答
1

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

于 2012-09-10T05:52:27.083 回答
0

使用 nl2br($content_here); 在检索时

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

于 2012-09-10T05:55:21.560 回答