5

我有一个输入文本区域,我想存储用户在数据库的文本区域中所做的换行符,以便它以与输入文本相同的方式回显输出文本

例如:

Some text some text some text some text


new line some text some text new line 

new line some text new line some text

这是我当前的上传脚本:

$sql = "insert into people (price, contact, category, username, fname, lname, expire, filename) values (:price, :contact, :category, :user_id, :fname, :lname, now() + INTERVAL 1 MONTH, :imagename)";
$q = $conn->prepare($sql) or die("failed!");
$q->bindParam(':price', $price, PDO::PARAM_STR);
$q->bindParam(':contact', $contact, PDO::PARAM_STR);
$q->bindParam(':category', $category, PDO::PARAM_STR);
$q->bindParam(':user_id', $user_id, PDO::PARAM_STR);
$q->bindParam(':fname', $fname, PDO::PARAM_STR);
$q->bindParam(':lname', $lname, PDO::PARAM_STR);
$q->bindParam(':imagename', $imagename, PDO::PARAM_STR);
$q->execute();
4

4 回答 4

31

文本区域中的换行符是换行符,例如\n. 这些不是在 HTML 中呈现的,因此如果您只是回显输出,它们就不会显示出来。您可以在 a<textarea><pre>标签内回显,也可以使用nl2br()用标签替换新行,<br>以便它可以显示为 HTML。

于 2012-10-04T14:33:13.530 回答
2

您可以在使用存储之前转义换行符mysql_real_escape_string

此处的文档:http: //php.net/manual/en/function.mysql-real-escape-string.php

于 2012-10-04T14:34:38.090 回答
1

您还可以使用 javascript 来破坏文本,如\n to <br>使用替换

str.replace("\n", "<br />","g");
于 2012-10-04T14:36:21.277 回答
0

我有同样的问题,现在正在工作:

$query = "UPDATE your_table 
         SET your_text_field = 'line 1'" . '\n' . "'line2' 
         WHERE your_id_field = " . $id . "';";
于 2015-01-09T16:37:12.383 回答