2011-03-02 40 views
0

我已經使用這個功能,逃過PHP輸入在一個漂亮的標準方法的一種形式:換行符沒有顯示出來

mysql_real_escape_string(string) 

但是,當我拉這些內容從數據庫中,由於某種原因,該空格不再顯示,文本顯示爲一個大塊。此頁面有加息描述區域中的示例: http://www.comehike.com/hikes/scheduled_hike.php?hike_id=131

有誰知道爲什麼會發生這種情況,以及如何防止這種情況?這是一個錯誤還是正常行爲?

回答

5

你必須學習HTML基礎知識。

linebreaks 打算不能用HTML呈現。
要使其可見,您必須用一些HTML標記替換它們。

+2

例如,通過使用PHP的'nl2br()'函數。 – 2011-03-02 18:44:35

+0

IE:插入'
' – kjy112 2011-03-02 18:44:49

+0

謝謝!對我來說,這是正確的做法:$ myString = nl2br($ myString); – Genadinik 2011-03-02 18:46:03

1

這是正常行爲 - 您所指的「空格」被視爲空白。您可以閱讀關於空白行爲在HTML here中的行爲。

你有四個基本的選擇:

  1. 替換行打破了HTML線使用PHP's nl2br function在運行時打破(容易...如果你這樣做,也包裹在<p>標籤的整個描述)
  2. 裹在<pre>標籤的說明(很容易,但不推薦,因爲它不是語義正確,可能會導致意想不到的造型頭痛)
  3. 解析您在運行時描述成實際的段落,包裹在HTML <p>標籤
  4. 首先將您的文本內容與HTML標記組合起來,以便它以這種方式存儲在數據庫中(這是大多數內容管理系統的工作原理)