在SQL中保留回车符以显示HTML而无需额外标记?

时间:2013-11-21 16:17:02

标签: php mysql html5 carriage-return

我正在编写一个应用程序,用户将文本输入到表单内的文本框中,文本存储在MEDIUMTEXT字段内的SQL数据库中。我现在正在测试,因此该表只有2个字段“1”表示索引,“2”表示存储的文本。

<form method="post" action="index.php" enctype="multipart/form-data" >
<h3>Input Text Here</h3>
<textarea name="text" cols="40" rows="6" ></textarea><br/>
<input type="submit" value="Submit" />
</form>

然后在另一页中检索存储的文本并显示。

<?php
$query = "SELECT * FROM test_table WHERE 1='1'";
$result = mysql_query($query);
if (!$result) die ("Database access failed: " . mysql_error());
$results = mysql_fetch_array($result, MYSQL_ASSOC);
echo $results['2'];
if(isset($_POST['text'])) {
echo printText($_POST['text']);

function printText($txt) {
if(!empty($txt)) {
return $txt;
} else {
return 'You didn\'t write anything.';
}
}
}
?>

问题在于,当显示文本时,所有回车消失,多个段落变为一个。

有人可以指导我朝哪个方向前进吗?我应该使用正则表达式寻找回车并标记它们吗?是否有较少搜索强烈的方法?我试过nl2br(),但我想你需要实际的\ n条目才能工作。

我写这篇文章是为了让人们轻松更新其着陆页上的“新闻俱乐部”,而无需使用文本编辑器和编写代码。

谢谢!

1 个答案:

答案 0 :(得分:1)

  

我试过nl2br(),但我想你需要实际的\ n条目   工作

nl2br 您需要的功能。从手册:

  

返回带有'&lt; br /&gt;'的字符串'或'&lt; br&gt;'在所有换行符之前插入   (\ r \ n,\ n \ r,\ n和\ r \ n)。

如果用户使用回车提交数据,那么您将获得“实际”\ n条目(或手册说明中提到的其他条目)。确保在回显相关文本时调用它。