如何在PHP中将段落拆分为两个或多个段落?

时间:2014-09-23 06:46:44

标签: php

我有一个字符串$ text:

$text = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam in dui mauris. Vivamus hendrerit arcu sed erat molestie vehicula. Sed auctor neque eu tellus rhoncus ut eleifend nibh porttitor. Ut in nulla enim. Phasellus molestie magna non est bibendum non venenatis nisl tempor. Suspendisse dictum feugiat nisl ut dapibus. Mauris iaculis porttitor posuere. Praesent id metus massa, ut blandit odio. Proin quis tortor orci. Etiam at risus et justo dignissim congue. Donec congue lacinia dui, a porttitor lectus condimentum laoreet.Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam in dui mauris. Vivamus hendrerit arcu sed erat molestie vehicula. Sed auctor neque eu tellus rhoncus ut eleifend nibh porttitor. Ut in nulla enim. Phasellus molestie magna non est bibendum non venenatis nisl tempor. Suspendisse dictum feugiat nisl ut dapibus. Mauris iaculis porttitor posuere. Praesent id metus massa, ut blandit odio. Proin quis tortor orci. Etiam at risus et justo dignissim congue. Donec congue lacinia dui, a porttitor lectus condimentum laoreet.'; 

现在我想把这个字符串转换成多个段落。我尝试过自动换行 echo wordwrap($text,100,"<br />",true);但是它会在每100个字符之后拆分字符串并给出一个奇怪的外观,因为它不会处理句号或单词。 新段落通常没有组织。

有没有办法在两个或多个格式良好的段落中相当好地拆分段落。 我希望我的描述清楚。

2 个答案:

答案 0 :(得分:2)

您可以使用正则表达式在每X个单词后分割字符串。例如,这会在每50个单词后拆分$ text并将它们添加到段落中:

preg_replace( '~((?:\S*?\s){50})~', "<p>$1</p>", $text );

答案 1 :(得分:1)

很高兴看到这些文档。 :)

<?php
$text = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam in dui mauris. Vivamus hendrerit arcu sed erat molestie vehicula. Sed auctor neque eu tellus rhoncus ut eleifend nibh porttitor. Ut in nulla enim. Phasellus molestie magna non est bibendum non venenatis nisl tempor. Suspendisse dictum feugiat nisl ut dapibus. Mauris iaculis porttitor posuere. Praesent id metus massa, ut blandit odio. Proin quis tortor orci. Etiam at risus et justo dignissim congue. Donec congue lacinia dui, a porttitor lectus condimentum laoreet.Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam in dui mauris. Vivamus hendrerit arcu sed erat molestie vehicula. Sed auctor neque eu tellus rhoncus ut eleifend nibh porttitor. Ut in nulla enim. Phasellus molestie magna non est bibendum non venenatis nisl tempor. Suspendisse dictum feugiat nisl ut dapibus. Mauris iaculis porttitor posuere. Praesent id metus massa, ut blandit odio. Proin quis tortor orci. Etiam at risus et justo dignissim congue. Donec congue lacinia dui, a porttitor lectus condimentum laoreet.'; 
echo wordwrap($text,100,"<br />");

<强>输出

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam in dui mauris. Vivamus hendrerit<br />arcu sed erat molestie vehicula. Sed auctor neque eu tellus rhoncus ut eleifend nibh porttitor. Ut<br />in nulla enim. Phasellus molestie magna non est bibendum non venenatis nisl tempor. Suspendisse<br />dictum feugiat nisl ut dapibus. Mauris iaculis porttitor posuere. Praesent id metus massa, ut<br />blandit odio. Proin quis tortor orci. Etiam at risus et justo dignissim congue. Donec congue lacinia<br />dui, a porttitor lectus condimentum laoreet.Lorem ipsum dolor sit amet, consectetur adipiscing elit.<br />Nullam in dui mauris. Vivamus hendrerit arcu sed erat molestie vehicula. Sed auctor neque eu tellus<br />rhoncus ut eleifend nibh porttitor. Ut in nulla enim. Phasellus molestie magna non est bibendum non<br />venenatis nisl tempor. Suspendisse dictum feugiat nisl ut dapibus. Mauris iaculis porttitor posuere.<br />Praesent id metus massa, ut blandit odio. Proin quis tortor orci. Etiam at risus et justo dignissim<br />congue. Donec congue lacinia dui, a porttitor lectus condimentum laoreet.