文本区域中的换行符[重复]
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
【讨论】:
以上是关于文本区域中的换行符[重复]的主要内容,如果未能解决你的问题,请参考以下文章