在文本周围包裹p标签(以不同的方式处理单行和双行换行符)

时间:2014-05-02 14:30:07

标签: php

我试图弄清楚如何使用php包装这样的文字:

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>";

1 个答案:

答案 0 :(得分: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';
     }
}