2013-03-19 101 views
1

我有一個文本區域,允許用戶輸入多行文本。我想強制文本框中的所有內容自動加倍間隔。我使用nl2br輸出文本並顯示間距。自動雙倍空間文本區域

比方說用戶類型:

紅色
藍色
綠色

我想nl2br函數輸出

紅色

藍色

綠色

我還需要能夠處理雙重空間(即,如果用戶已經放入雙倍空間,我不想要更多。

關於如何製作這個的任何想法?我寧願在允許用戶輸入文字的頁面中進行操作。謝謝!

回答

3

使用str_replace()PHP_EOL

$str = 'red 
blue 
green'; 

$str = str_replace(PHP_EOL, '<br><br>', $str); 
echo $str; 

編輯: 使用正則表達式:

$str = 'red 

blue 



green 
blue'; 

$str = preg_replace(array('/(\r?\n)+/', '/\r?\n/'),array(PHP_EOL,'<br><br>'), $str); 
echo $str; 
+1

感謝 - 需要更新我的問題問這是否會處理雙空格 – Brandon 2013-03-19 10:32:18

+0

@Brandon檢查我的更新答案:) – HamZa 2013-03-19 10:41:11

+0

您複製'(即用戶如果以雙倍行距已經提出,我不想要更多。) \ r?'我認爲你也需要它'\ n?' – 2013-03-19 10:43:05

0
$str = nl2br(str_replace(PHP_EOL, '<br><br>', $str)); 
echo $str; 
+0

沒有理由把它換成'nl2br()'。 'str_replace()'已經將它們刪除後沒有新行。 – JJJ 2013-03-19 10:51:02

0
$str = str_replace('<br />', '<br /><br />', nl2br($str)); 

這將使<br />標籤的所有行結尾的事後雙該米