在P标签中包裹文本

时间:2009-06-24 21:36:37

标签: php regex tags

我正在试图弄清楚如何包装这样的文字:

  

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

     

认识mauris dolor ac elit。保护者   mollis nisl sem semper ornare。   整数nunc purus,dapibus nec   dignissim sed,dictum eget leo。 Etiam   在mi ut erat pretium fringilla sed

进入这个:

  

< p> Morbi nisl tortor,consectetur vitae   laoreet eu,lobortis id ipsum。整数   scelerisque blandit pulvinar。南   tempus mi eget nunc laoreet venenatis。   Proin viverra,erat at accumsan   tincidunt,ante mi cursus elit,non< / p>

     

< p> congue mauris dolor ac elit。保护者   mollis nisl sem semper ornare。   整数nunc purus,dapibus nec   dignissim sed,dictum eget leo。 Etiam   在mi ut erat pretium fringilla sed< / p>

请注意文字周围的p标记。

3 个答案:

答案 0 :(得分:10)

这应该这样做

$text = <<<TEXT
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

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

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

答案 1 :(得分:3)

在输入中的所有行的循环中使用preg_replace

$replacement = preg_replace("/(.*)/", "<p>$1</p>", $current_line);

答案 2 :(得分:2)

$str = '<p>'. str_replace('\n\n', '</p><p>', $str) .'</p>';

OR

$str = '<p>'. preg_replace('\n{2,}', '</p><p>', $str) .'</p>';

要抓住2个或更多。