Я думаю, что регулярное выражение - это самый простой способ дать вам то, что вы хотите. Учитывая этот вопрос, я уверен, что вы либо никогда не слышали об этом, либо вообще не знаете, как он работает.
Поскольку это довольно сложно, я готов помочь вам, пока вы не справитесь, чтобы он работал именно так, как вы хотите.
Я провел несколько тестов, и это работает для меня.
echo preg_replace('/(\.{20}?|.{10,20}?\. )/', '$1<br />', $desc);
Эта единственная строка кода помещает теги разрыва либо при достижении 20 символов, либо при наличии точки, за которой следует пробел, если до этого есть более 10 символов, чтобы избежать строк из одного слова.
Пример текста, который вы дали, будет взят из:
Параграф следует как «Наш отдел обслуживания клиентов. Поможет вам в любой проблеме, которая может у вас возникнуть. Покупатель несет ответственность за обратную доставку. Мы предлагаем бесплатную наземную доставку UPS или USPS в континентальную часть США. Мы отправляем в течение 1 рабочего дня после оплаты . Действуют все остальные тарифы на доставку (подробности см. На аукционе купленного товара). Все заказы получают номер для отслеживания UPS или USPS.
до:
A Paragraph follows like "Our Customer service dept.<br />
will help you with any issue you might have.<br />
Buyer is responsible for return shipping.<br />
We offer free UPS or USPS ground shipping to the continental U.S.<br />
We ship within 1 business day of payment.<br />
All other shipping rates apply (see auction of item purchased for details).<br />
All orders get a UPS or USPS tracking number.
Дайте мне знать, если вы этого хотите!