2012-11-17 87 views
2

我正在從textarea收集文本。文本中有換行符。然後我將它保存到數據庫中。MYSQL PHP在textarea中保存換行符以備以後顯示

但是,當我從數據庫中檢索它並將其顯示回textarea中進行編輯時,換行符就消失了,文本變成了一個長的運行字符串。

我想原來那裏的換行符重新出現。如何將換行符插入到textarea中時如何顯示?

注:不能只需將它們轉換爲<br>,因爲這會一個textarea其中<br>內容將不會被渲染裏面,只是寫出文本。我想要實際的換行符。

+0

你不能用字符串替換函數來替換\ n與
嗎?或者我沒有清楚地得到你的問題 – samayo

+0

厄立特里亞,OP應該沒有理由做這樣的事情。 MySQL自己保存'\ n'就好了。 –

+0

如果您查看頁面的來源,編輯字段中的行是否正確拆分? – tadman

回答

-1

這是這類問題打交道時,我通常做的:

  1. 保存在任何形式的數據接收器。這意味着,如果用戶使用換行符,則以這種方式進行存儲。不要改變它。
  2. 在顯示數據,每換行轉換爲<br />

    echo str_replace("\n", "<br />", $data); 
    

使用這種技術,你可以保存在您的textarea的用戶使用的任何格式的數據。

+0

無法使用
,因爲它在textarea框中顯示爲標籤。我將嘗試保存\ n作爲其他類似***的內容,當我在textara中顯示時,請使用您的建議將***替換爲\ n,然後查看它是否有效。 – user1260310

+0

我的方法沒有奏效。根本沒有打印。所以還在尋找答案。 – user1260310

+0

這裏的交易:通常,用戶將使用[返回]作爲新行。這個翻譯爲'\ n'。保持原樣並將其存儲到數據庫。下次用戶想要更改內容時,只需向他們展示保存的任何數據(包括'\ n')。但是,如果要將數據顯示爲html,請首先將它們格式化,方法是用'
'替換'\ n'。 – ariefbayu

-1

str_replace()不會是這樣的:

echo str_replace($data, "\n", "<br />"); 

它是這樣的:

str_replace("SEARCH_FOR","REPLACE_WITH",STRING); 

在這個意義上,SEARCH_FOR是你正在努力尋找什麼,REPLACE_WITH是你想要什麼替換爲,並且STRING是您正在使用的變量(例如$data)。

0

您coud使用這樣的事情:

echo nl2br($someText); 
5

每個人都建議對換行轉換爲<br />,但是當你在你的問題說,這不是你想要的。您想要再次在textarea中顯示換行符。所以,你需要的就是stripcslashes() - 這將剝去\n,給你你以後,你的textarea的是換行符,在textarea的不是HTML <br />標籤:

PHP:stripcslashes

用法:

echo stripcslashes($input_text); 
+0

這正是爲我工作的。謝謝! – xeo

相關問題