文本区域中的换行符[重复]

Posted

技术标签:

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

可能重复:line breaks in a textarea

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

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

我正在使用 php

谢谢

【问题讨论】:

【参考方案1】:

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

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

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

【讨论】:

以上是关于文本区域中的换行符[重复]的主要内容,如果未能解决你的问题,请参考以下文章

禁用 HTML 文本区域中的换行符

文本区域中的换行符

Firestore 不保存文本区域中的换行符

带有换行符的文本区域中的数据到数据库

在发布和重用值后,在文本区域中显示用换行符分隔的值

使用 php 读取文件时删除文本区域中的换行符