2014-05-02 27 views
0

我試圖找出如何包裝像這樣使用PHP文本:文本週圍環繞p標籤(治療單,雙換行符不同)

Article 

Morbi nisl tortor, consectetur vitae laoreet eu, lobortis id ipsum. Integer scelerisque blandit pulvinar. 
Nam tempus mi eget nunc laoreet venenatis. Proin viverra, erat at accumsan tincidunt, ante mi cursus elit, non 

Fogsu 
congue mauris dolor ac elit. Maecenas mollis nisl a sem semper ornare. Integer nunc purus, dapibus nec dignissim sed, dictum eget leo. Etiam in mi ut erat pretium fringilla sed 

爲了這樣的事情:

<p class=single>Article</p> 

<p class="double"> 
Morbi nisl tortor, consectetur vitae laoreet eu, lobortis id ipsum. Integer scelerisque blandit pulvinar.</p> 
<p class="single">Nam tempus mi eget nunc laoreet venenatis. Proin viverra, erat at accumsan tincidunt, ante mi cursus elit, non</p> 

<p class="double">Fogsu</p> 
<p class="single">congue mauris dolor ac elit. Maecenas mollis nisl a sem semper ornare. Integer nunc purus, dapibus nec dignissim sed, dictum eget leo. Etiam in mi ut erat pretium fringilla sed</p> 

請注意,單行換行的處理方式不同。謝謝。

我迄今爲止代碼:

print "<p>" . implode("</p>\n\n<p>", preg_split('/\n(?:\s*\n)+/', $text)) . "</p>"; 
+0

你可以使用CKEditor的插件 – Daan

+0

@丹我已經能夠實現通過檢測一個單一的休息或雙包裝p標籤打破。但問題是同時檢測和區別對待 – oreofeolurin

回答

0

試試這個:

$lines = explode("\n", $text); 
$class = 'single'; 
foreach ($lines as $line) { 
    if (strlen(trim($line)) == 0) { 
     $class = 'double'; 
    } else { 
     printf ('<p class="%s">%s</p>'."\n", $class, $line); 
     $class = 'single'; 
    } 
} 
+0

謝謝,但頁面打印帶班單 – oreofeolurin

+0

它幫助,如果我把參數正確的順序在'explode'聲明只有一個空的p標籤。它[現在有效](http://3v4l.org/lq4Ua)。 – cpilko

+0

是看到已經固定,還必須修剪斷線,檢查了這一點http://codepad.org/3quKblaI – oreofeolurin