将纯文本格式化为HTML


Formatting plain text into HTML

目前正在为WordPress开发自定义主题系统。他们将页面/帖子的文本以纯文本形式存储在数据库中。我需要用段落<p></p>来格式化文本。不确定做这件事的最佳方式。它似乎已经用<strong></strong>之类的HTML标记来格式化文本,但没有用段落。

在数据库中看起来像这样:

Donec nec placerat metus, in consequat lorem. In dignissim tristique commodo. Etiam augue enim, pulvinar a sem a, venenatis congue augue. Mauris quis leo in dolor mollis pulvinar. Nullam sed nisi et nisl fringilla consequat nec eu mi. Nunc sagittis lorem est, commodo ullamcorper sem tristique vel. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Cras ut odio et massa vehicula viverra. Mauris commodo aliquet eros, ut volutpat metus porta a. Integer et condimentum mauris, nec dictum felis. In dapibus lorem faucibus eleifend ornare. Integer rutrum lacinia est, eu placerat lectus accumsan sed. Maecenas vitae neque risus. Suspendisse venenatis blandit facilisis. Curabitur id convallis ligula, a porttitor purus.
Proin congue metus vel urna egestas eleifend. Nullam arcu est, auctor at consectetur a, posuere eget justo. Suspendisse scelerisque quam ut quam bibendum venenatis. Donec dignissim sit amet tellus eu posuere. Aenean dignissim augue eget elit vestibulum fringilla. Proin a orci a tellus varius ornare. Morbi ac dui vulputate est porttitor imperdiet. Maecenas risus sem, suscipit nec neque non, consequat dapibus sem. Nulla sed dolor quis est porta commodo. Vestibulum ut sapien porttitor, feugiat magna non, adipiscing nunc. Aliquam neque eros, egestas quis cursus ut, posuere nec ipsum. Curabitur facilisis semper aliquam. Integer urna arcu, facilisis sed nisl eu, egestas hendrerit libero.
Nam viverra fringilla velit eu convallis. Sed ac arcu at sapien tincidunt aliquet a eu est. Integer ultrices lorem id neque ullamcorper gravida. Sed tempor, risus non venenatis lobortis, nunc tellus auctor libero, ut aliquam ante urna at dui. Aenean vel nunc vel quam dapibus euismod. Nulla tortor nisi, luctus elementum velit cursus, rhoncus interdum eros. Duis nunc orci, egestas a mauris sed, tempor venenatis odio. Donec iaculis tincidunt arcu, quis dignissim lectus aliquam ac. Vivamus sem tortor, rhoncus vel nulla eu, semper ullamcorper quam. Duis mollis sem in metus cursus, id sodales velit consectetur.
Morbi ut eleifend felis, et aliquet purus. Nam a dui ornare, convallis turpis quis, tincidunt nulla. In porttitor augue ut urna pharetra tincidunt. Mauris nunc leo, varius a elit ac, ultrices mollis tortor. Phasellus rhoncus nec ligula vel faucibus. Suspendisse feugiat euismod nibh, at varius augue malesuada ut. Fusce at porttitor sem. Nam eget varius elit. Aliquam tristique malesuada nisi non tincidunt. Sed eu tortor varius, porttitor risus nec, elementum metus. Mauris quis tristique dolor, sit amet iaculis arcu.
Sed velit metus, feugiat in ullamcorper gravida, ornare sed est. Sed rutrum faucibus congue. Proin nec laoreet nunc, ac fermentum neque. Donec eu nulla nunc. Donec aliquet, lorem ut iaculis varius, orci purus feugiat libero, nec porttitor orci dui at dolor. Sed vel felis quis odio ornare hendrerit ut nec metus. Phasellus eu odio sit amet risus sodales porta. Proin egestas, erat sit amet tristique consectetur, mi nisi condimentum urna, at cursus orci sem in mi.

希望它在HTML:中看起来像这样

<p>Donec nec placerat metus, in consequat lorem. In dignissim tristique commodo. Etiam augue enim, pulvinar a sem a, venenatis congue augue. Mauris quis leo in dolor mollis pulvinar. Nullam sed nisi et nisl fringilla consequat nec eu mi. Nunc sagittis lorem est, commodo ullamcorper sem tristique vel. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Cras ut odio et massa vehicula viverra. Mauris commodo aliquet eros, ut volutpat metus porta a. Integer et condimentum mauris, nec dictum felis. In dapibus lorem faucibus eleifend ornare. Integer rutrum lacinia est, eu placerat lectus accumsan sed. Maecenas vitae neque risus. Suspendisse venenatis blandit facilisis. Curabitur id convallis ligula, a porttitor purus.</p>
<p>Proin congue metus vel urna egestas eleifend. Nullam arcu est, auctor at consectetur a, posuere eget justo. Suspendisse scelerisque quam ut quam bibendum venenatis. Donec dignissim sit amet tellus eu posuere. Aenean dignissim augue eget elit vestibulum fringilla. Proin a orci a tellus varius ornare. Morbi ac dui vulputate est porttitor imperdiet. Maecenas risus sem, suscipit nec neque non, consequat dapibus sem. Nulla sed dolor quis est porta commodo. Vestibulum ut sapien porttitor, feugiat magna non, adipiscing nunc. Aliquam neque eros, egestas quis cursus ut, posuere nec ipsum. Curabitur facilisis semper aliquam. Integer urna arcu, facilisis sed nisl eu, egestas hendrerit libero.</p>
<p>Nam viverra fringilla velit eu convallis. Sed ac arcu at sapien tincidunt aliquet a eu est. Integer ultrices lorem id neque ullamcorper gravida. Sed tempor, risus non venenatis lobortis, nunc tellus auctor libero, ut aliquam ante urna at dui. Aenean vel nunc vel quam dapibus euismod. Nulla tortor nisi, luctus elementum velit cursus, rhoncus interdum eros. Duis nunc orci, egestas a mauris sed, tempor venenatis odio. Donec iaculis tincidunt arcu, quis dignissim lectus aliquam ac. Vivamus sem tortor, rhoncus vel nulla eu, semper ullamcorper quam. Duis mollis sem in metus cursus, id sodales velit consectetur.</p>
<p>Morbi ut eleifend felis, et aliquet purus. Nam a dui ornare, convallis turpis quis, tincidunt nulla. In porttitor augue ut urna pharetra tincidunt. Mauris nunc leo, varius a elit ac, ultrices mollis tortor. Phasellus rhoncus nec ligula vel faucibus. Suspendisse feugiat euismod nibh, at varius augue malesuada ut. Fusce at porttitor sem. Nam eget varius elit. Aliquam tristique malesuada nisi non tincidunt. Sed eu tortor varius, porttitor risus nec, elementum metus. Mauris quis tristique dolor, sit amet iaculis arcu.</p>
<p>Sed velit metus, feugiat in ullamcorper gravida, ornare sed est. Sed rutrum faucibus congue. Proin nec laoreet nunc, ac fermentum neque. Donec eu nulla nunc. Donec aliquet, lorem ut iaculis varius, orci purus feugiat libero, nec porttitor orci dui at dolor. Sed vel felis quis odio ornare hendrerit ut nec metus. Phasellus eu odio sit amet risus sodales porta. Proin egestas, erat sit amet tristique consectetur, mi nisi condimentum urna, at cursus orci sem in mi.</p>
$formattedString = "<p>$stringFromDatabase</p>";

看看这个:
我想在第一个字符之前和最后一个字符之后添加字符串数据

在另一篇文章中找到了解决方案。

$in = '
blablablabalbalblablablablablablablablabalbalbla.
otherotherotherotherotherother.
helloworldhelloworldhelloworldhelloworld.';
$out = '<p>'
$out .= str_replace("'n'r" , '</p><p>', $in);
$out .= '</p>';
echo $out;

这里有另一个选项:

$explodedString = explode("'n", $stringFromDatabase);
foreach ($explodedString as &$value)
$value = '<p>'.$value.'</p>';
$cleanString = implode(" ", $explodedString);
echo $cleanString;