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

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

Вообщем начну с того, что на странице есть список сущностей, допустим заказы, и я вывожу их блоками соответсвенно у них есть максимальная высота. При выводе контента я использую nl2br, и на отдельной странице заказа все выводится хорошо так как родительский блок может растягиваться. А вот на странице где выводится список заказов, я обрезаю строку до 80 символов ( так как больше 80 блок начинает увеличиваться чего нельзя допустить) но переносы строк substr корректно посчитать не может и получается что контент выходит за пределы родительского блока. Есть ли способ как то обработать их, например обрезать на том месте где подряд идет больше 2-3 переносов строки ? (P.S при этом переносы строк нужно выводить, например если только один перенос)
Страница со списком заказов:
5f7b4b9228f7b128283315.png
Cтраница одного заказа:
5f7b4bc12f16a140042343.png
Как я обрезаю и вывожу контент на странице со списком заказов:
nl2br(mb_substr($this->content,0,80).'...');
  • Вопрос задан
  • 255 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 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() и их аналоги
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽