gphp
@gphp
Подающий надежды php программист

Как устранить лишние при использовании функции nl2br?

Здравствуйте, уважаемые программисты!

Столкнулся с одной очень неприятной вещью - когда использую nl2br и если в тексте присутствуют еще определенные теги например, <blockquote></blockquote>, либо теги списков <ul><li>пункт</li><ul> (пока встречал только у этих двух, с остальными тегами без проблем), то после них на выходе визуально отступы получается в 2 строки, а не в одну как при обычном тексте. Помогите решить данную проблему, пожалуйста!
  • Вопрос задан
  • 293 просмотра
Пригласить эксперта
Ответы на вопрос 3
BuriK666
@BuriK666
Компьютерный псих
уберите с помощью CSS лишние отступы
Ответ написан
Комментировать
profesor08
@profesor08 Куратор тега PHP
1) Убедитесть что нет лишних разрывов. Функция заменяет каждый перевод на новую стороку на br. Убедитесь, что у вас нет лишних пустых строк.
2) Попробуйте заменить регуляркой через preg_replace, но скорее всего будет тот-же результат.
3) Функции nl2br пофиг какие у вас теги, мануал в помощь.
Ответ написан
Комментировать
gphp
@gphp Автор вопроса
Подающий надежды php программист
Хорошо, объясню так сказать с примерами. Вот так я ввожу текст с тегами в БД, вроде ничего необычного, экстраординарного и странного:
31285d7cc3b6499fbf9ff0718ae9dca5.png

При выводе текст из БД на страницу с применением функции PHP nl2br получается такая хурма.
dec036d4e4164e1595a59bc76aacbbd8.png

С остальными постоянно применяемыми тегами функция работает хорошо, без подобного выпендрежа.

Мануалы все прочитаны и не раз уже. Много найдено чего в инете, и ничего не помогло. И с preg_replace() в разных вариациях я уже развлекался, результат тот же.

P.S. Есть вариант сделать вот так:
$text = preg_replace(array("/\\r\\n/", "/\\r/", "/\\n/"), "<br />", $text);
$text = str_replace("<br /><li>", "<li>", $text);
$text = str_replace("<ul><br />", "<ul>", $text);
$text = str_replace("</li><br />", "</li>", $text);
$text = str_replace("</ul><br />", "</ul>", $text);


Но это уже какие-то некрасивые убогие костыли.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы