Задать вопрос
@Artemmmm13

Как правильно обработать переносы строк в php?

Вообщем начну с того, что на странице есть список сущностей, допустим заказы, и я вывожу их блоками соответсвенно у них есть максимальная высота. При выводе контента я использую nl2br, и на отдельной странице заказа все выводится хорошо так как родительский блок может растягиваться. А вот на странице где выводится список заказов, я обрезаю строку до 80 символов ( так как больше 80 блок начинает увеличиваться чего нельзя допустить) но переносы строк substr корректно посчитать не может и получается что контент выходит за пределы родительского блока. Есть ли способ как то обработать их, например обрезать на том месте где подряд идет больше 2-3 переносов строки ? (P.S при этом переносы строк нужно выводить, например если только один перенос)
Страница со списком заказов:
5f7b4b9228f7b128283315.png
Cтраница одного заказа:
5f7b4bc12f16a140042343.png
Как я обрезаю и вывожу контент на странице со списком заказов:
nl2br(mb_substr($this->content,0,80).'...');
  • Вопрос задан
  • 208 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
Задайте блоку нужную высоту и сделайте ему overflow:hidden. Высоту блока подберите в 2-3 строки, сколько там по дизайну нужно, лишнее просто не будет видно.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
iResource
@iResource
Разработчик IR XML2Ozon
Есть ли способ как то обработать их, например обрезать на том месте где подряд идет больше 2-3 переносов строки ?

Так может, сначала регуляркой заменить двойные-тройные переносы на одинарные?

Что-то вроде:
$this->content = preg_replace('/(\r\n|\r|\n){2,}/ui', '$1', $this->content);

Можно и обрезать, как Вы предложили. Тоже регулярным выражением.
Ответ написан
SilenceOfWinter
@SilenceOfWinter Куратор тега PHP
та еще зажигалка...
wordwrap()/chunk_split() и их аналоги
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы