Как преобразовать несколько тегов <br/> в один тег <br/> в php - PullRequest
15 голосов
/ 25 сентября 2008

хотел конвертировать

<br/>
<br/>
<br/>
<br/>
<br/>

в

<br/>

Ответы [ 9 ]

35 голосов
/ 25 сентября 2008

Вы можете сделать это с помощью регулярного выражения:

preg_replace("/(<br\s*\/?>\s*)+/", "<br/>", $input);

Если вы передадите исходный HTML-код, он вернет строку с одним
, заменяющим каждый их запуск.

17 голосов
/ 25 сентября 2008

Мой почти такой же, как levik (+1), только с учетом некоторого различного форматирования br:

preg_replace('/(<br[^>]*>\s*){2,}/', '<br/>', $sInput);
6 голосов
/ 25 сентября 2008

Улучшенная читаемость, короче, дает правильный вывод независимо от атрибутов:

preg_replace('{(<br[^>]*>\s*)+}', '<br/>', $input);
5 голосов
/ 04 декабря 2009

Спасибо всем .. Используемая версия Jakemcgraw (+1)

Только что добавлена ​​опция нечувствительности к регистру ..

{(<br[^>]*>\s*)+}i

Отличный инструмент для проверки этих регулярных выражений:

http://www.spaweditor.com/scripts/regex/index.php

2 голосов
/ 25 сентября 2008

без preg_replace, но работает только в PHP 5.0.0 +

$a = '<br /><br /><br /><br /><br />';
while(($a = str_ireplace('<br /><br />', '<br />', $a, $count)) && $count > 0)
{}
// $a becomes '<br />'
2 голосов
/ 25 сентября 2008

Используйте регулярное выражение для совпадения <br/> один или несколько раз, затем используйте preg_replace (или подобное) для замены на <br/>, например, ответ levik.

1 голос
/ 01 апреля 2015

Пользователь может ввести много вариантов

<br>
<br/>
< br />
<br >
<BR>
<BR>< br>

... и более.

Так что я думаю, что будет лучше

$str = preg_replace('/(<[^>]*?br[^>]*?>\s*){2,}/i', '<br>', $str);
1 голос
/ 20 февраля 2010

Быстрый подход без регулярного выражения:

while(strstr($input, "<br/><br/>"))
{
    $input = str_replace("<br/><br/>", "<br/>", $input);
}
1 голос
/ 25 сентября 2008

Возможно, вы хотите использовать регулярное выражение. Я не проверял следующее, но я верю, что это правильно.

$text = preg_replace( "/(<br\s?\/?>)+/i","<br />", $text );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...