2011-11-21 44 views
1

我有一個大面積的文本,我希望將其轉換爲有效的HTML。這包括爲每個新段落添加一個段落標記,我怎樣才能用PHP做到這一點?例如添加換行符是這樣的:preg_replace和linebreaks

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. 

Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. 

<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p> 

<p>Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.</p> 

可以這樣用了preg_replace來achived?

感謝

回答

2

我想這是你想要什麼:

function nl2p($input) { 
    return preg_replace('~^\s*(.*?)\s*$~sm', '<p>$1</p>', $input); 
    } 
+0

作品,太棒了!謝謝 :) –

1
$result = "<p>" . str_replace("\r\n","</p><p>",$text) . "</p>"; 

demo

+0

沒有工作,你的意思是使用「\ r \ n」而不是「\ n \ n」。這種方式看起來有點混亂,即使文本是空白的,仍然會輸入段落標籤。 –

0

這樣你d on't擔心不同類型的垂直線斷裂(\ n或\ r或\ F或組合):

$output = '<p>' . preg_replace('/\v+/', '</p><p>', $input) . '</p>'; 

您也可能會發現這個網站的測試有所幫助: http://www.gummydev.com/regex/