2013-09-24 63 views
0

好吧,那麼我的網站,我讓我的用戶有自己的描述或任何他們喜歡的,但是當我試圖讓使用[ENTERKEY]斷裂成它看起來像這樣的<textarea>換行符不會通過

Hello, I am John Smith. 
Phone#: (123)456-7890 
I enjoy web-browsing. 

當我回到頁面時,它看起來完全相同(它將它們的當前描述放在編輯框中)。這就是我要的。我查看了PHP數據庫,它看起來仍然是一樣的。這也是我想要的。然而,個人資料頁上它看起來像這樣

Hello, I am John Smith. Phone#: (123)456-7890 I enjoy web-browsing. 

它包含這些樣式的標記一個div內,像這樣

 <div style="width: 250px; min-height: 50px; margin: auto; font-weight: normal; text-align: center; padding: 2px; margin-bottom: 5px;"> 
      <?php echo $description; ?> 
     </div> 

林好奇,爲什麼它這樣做的任何幫助將不勝感激:d。

+0

瀏覽器接受HTML(nl2br()) – 2013-09-24 23:43:48

+0

Web瀏覽器不呈現換行符。使用['nl2br()'](http://php.net/manual/en/function.nl2br.php)將換行符轉換爲HTML'
'元素。 – Sammitch

+0

http://php.net/manual/en/function.nl2br.php – djot

回答

0

添加white-space:pre-line<div>或者使用:

<?= nl2br($description); ?> 

請記住,HTML需要<br />換行,不\n\r\n(如您<textarea>正在收集)。因此,您可以讓HTML注意使用white-space的新行,或使用nl2br強制<br />

0

當你在一個textarea中輸入一個換行符時,它將被存儲爲\n,但是HTML不會兌現\n linebreaks,這就是爲什麼當一個div內的任何東西都顯示在一行中的原因。

爲了解決這個問題,你必須\n<br />(使用nl2br())將要轉換的HTML承認:

<div style="width: 250px; min-height: 50px; margin: auto; font-weight: normal; text-align: center; padding: 2px; margin-bottom: 5px;"> 
    <?php echo nl2br($description); ?> 
</div> 
0

這是因爲當你把一個普通換行符,並嘗試呈現爲HTML,HTML忽略空白字符。您需要明確使用<br>(或<br/>,具體取決於DOCTYPE)以HTML創建換行符。

在PHP中做到這一點,最簡單的方法是通過對輸出使用nl2br()功能在PHP。

相關問題