2013-01-04 50 views
0

可能重複:
How to save user-entered line breaks from a TEXTAREA to a database?如何通過按下回車鍵在PHP中插入一個換行符到數據庫中?

當我按下一個文本輸入鍵它去換行符。但是當我從操作頁面收到這個值時,它會轉換爲空白區域。我想從操作頁面接收ENTER KEY字符作爲換行符,而不是空格。 示例代碼:這是HTML代碼

<form action="go.php" method="POST"> 
<textarea name="aa" cols="10" rows="10"></textarea> 
<form> 

她是go.php代碼:

<?php 
$txt=$_POST['aa']; 
echo $txt; 
?> 

如果我喜歡 輸入「這是我的(按Enter鍵),這是他(PRESS回車鍵)」。 我想輸出像 「這是我(換行)這是他(換行)」。 但我從go.php像 「這是我這就是他」。 這裏是沒有任何新行,但空白。 請大家幫幫我。爲什麼發生。

+2

你究竟如何檢查它不是一個新的行字符?你打開了頁面源代碼嗎? – zerkms

+0

http://stackoverflow.com/questions/498461/how-to-save-user-entered-line-breaks-from-a-textarea-to-a-database – Jrod

+0

當我打印它時,它總是打印一個平面字符串分離由空白。在頁面源中,它聲明爲換行符,但顯示爲空格。但爲什麼我不知道。請解釋我,如果你知道。@ zerkms –

回答

3

我相信你想nl2br。這將在字符串中的所有換行符之前插入HTML換行符。如果您打算將其存儲在數據庫中,則需要使用與mysql_real_escape_string()類似的內容來避開換行符。

<?php 
echo nl2br("foo isn't\n bar"); 
?> 

的HTML看起來像:

foo isn't<br /> 
bar 

您的代碼將然後看起來像:

<?php 
$txt=$_POST['aa']; 
echo nl2br($txt); 
?> 
+0

「你需要類似於mysql_real_escape_string()的東西」---要清楚,你總是**需要一些「類似於它」的東西。無論你將什麼和從哪裏插入到DB – zerkms

+0

@zerkms我一直在努力使OP正在使用'PDO'或'mysqli_'函數和準備好的語句。 – Kermit

+0

是的。但我的意思是,你的建議對於新行來說太具體了,而它總是需要避開輸入。 – zerkms

1

您需要使用nl2br功能可以捕捉並更換新行。下面的工作代碼;

<form action="nl.php" method="POST"> 
<textarea name="aa" cols="10" rows="10"></textarea> 
<input type="submit" value="s"> 
</form> 
Her is the go.php code : 

<?php 
$txt=$_POST['aa']; 
echo nl2br($txt); 
?> 
相關問題