2013-07-18 22 views
0

В настоящее время работает над пользовательской системой тем для WordPress. Они сохраняют свой текст для страниц/сообщений в базе данных как обычный текст. Мне нужно отформатировать текст с параграфами <p></p>. Не уверен, что лучший способ сделать это. Кажется, что форматирование текста с тегами HTML для таких вещей, как <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> 
+3

если вам просто нужно разрывы строк использовать nl2br() –

+0

Вы могли бы пойти на шаг дальше и использовать уценки/текстиль. Есть libs для php и имеют широкий спектр функций. – calcinai

+0

Помогает немного с форматированием, но я бы хотел обернуть тег '' вокруг каждой строки. –

ответ

0

Найдено решение на другом посту.

$in = ' 
blablablabalbalblablablablablablablablabalbalbla. 
otherotherotherotherotherother. 
helloworldhelloworldhelloworldhelloworld.'; 

$out = '<p>' 
$out .= str_replace("\n\r" , '</p><p>', $in); 
$out .= '</p>'; 

echo $out; 
0

Вот еще один вариант:

$explodedString = explode("\n", $stringFromDatabase); 
foreach ($explodedString as &$value) 
$value = '<p>'.$value.'</p>'; 
$cleanString = implode(" ", $explodedString); 
echo $cleanString; 
Смежные вопросы