новая строка для ‹p› в php

В настоящее время у меня есть много шуток в базе данных, отформатированных с помощью nl2br(), который производит...

This is just dummy text. Lorem ipsum dolor sit amet, consectetur adipiscing elit.
<br /><br />
Vestibulum gravida justo in arcu mattis lacinia. Mauris aliquet mi quis diam euismod blandit ultricies ac lacus.
<br /><br />
Aliquam erat volutpat. Donec sed nisi ac velit viverra hendrerit.
<br />
Praesent molestie augue ligula, quis accumsan libero.

Мне нужна функция php, которая скорее преобразует <br /><br /> в <p></p>, и если есть только 1 <br />, оставьте ее в покое. Также обрезать все пробелы

Так что конечный результат будет...

<p>This is just dummy text. Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
<p>Vestibulum gravida justo in arcu mattis lacinia. Mauris aliquet mi quis diam euismod blandit ultricies ac lacus. </p>
Aliquam erat volutpat. Donec sed nisi ac velit viverra hendrerit.<br />
Praesent molestie augue ligula, quis accumsan libero.

может ли кто-нибудь указать мне правильное направление или дать мне простую функцию, которая делает это? Благодарность


person bghouse    schedule 15.02.2013    source источник
comment
Вы хотите обрезать каждый ряд?   -  person Lumbendil    schedule 16.02.2013


Ответы (4)


Используйте функцию замены строки PHP, чтобы заменить все <br /><br /> на </p><p>. http://php.net/manual/en/function.str-replace.php

Образец кода:

$stringWithBRs = nl2br($originalString)
$stringWithPs = str_replace("<br /><br />", "</p>\n<p>", $stringWithBRs);
$stringWithPs = "<p>" . $stringWithPs . "</p>";

Или вы можете использовать следующий код, даже не вызывая функцию nl2br().

$stringWithPs = str_replace("\n\n", "</p>\n<p>", $originalString);
$stringWithPs = "<p>" . $stringWithPs . "</p>";
person Tarandeep Gill    schedule 16.02.2013
comment
он хочет поместить строку в теги ‹p› =) - person el Dude; 16.02.2013
comment
Да, это то же самое. Он может заменить все <br /><br /> на </p><p>, а затем обернуть весь текст <p> и `‹\p› - person Tarandeep Gill; 16.02.2013

Просто преобразуйте исходную строку напрямую:

$text=str_replace("<br /><br />", "</p><p>", $original_string);

А в HTML где-то так:

<p>
 <?php echo $text; ?>
</p>
person ivanaugustobd    schedule 29.01.2014

Однострочный:

$sNewString = implode('</p><p>',explode('<br /><br />', nl2br($sOriginalString)))

Объяснение:

  1. Преобразование разрывов строк в br
  2. Разделить строку на массив с помощью этих br
  3. Приклейте массив обратно к строке, вставив теги P между каждым элементом массива.
person kirgy    schedule 23.02.2016

Попробуйте

$old_string = preg_replace("/[\r\n]/","</p><p>",$old_string);
$new_string = "<p>" . $old_string . "</p>";
echo $new_string;
person johan    schedule 09.03.2018