Php функция разбивки строки на части размером не более 640 символов
Добрый день!
Нужно написать функцию создающую из строки вида:
Товар 1 - 100 USD\n
Товар 2 - 200 USD\n
...
Товар 33 - 400 USD\n\n
Итого: 500 USD
Массив состоящий из частей строки размером не более N символов.
$arr = split($string, 640);
Требования:
- нельзя рвать слова
- нельзя рвать строки
- стараться разбивать на части сразу после переноса строки
- удалять \n в случае если оно в самом верху после переноса
В общем, нужно подумать как так разбивать строку чтобы каждая ее часть была лишена разрывов и лишних переносов.
Ниже прикрепляю скриншот где более наглядно понятно зачем это нужно.
Также предоставляю функцию которая сейчас это делает, но делает это корявенько.
function chunk_split_unicode($str, $l = 5, $e = "\r\n", $last = FALSE) {
$tmp = array_chunk(preg_split("//u", $str, -1, PREG_SPLIT_NO_EMPTY), $l);
$res = [];
$count = (count($tmp) - 1);
foreach ($tmp as $k => $t) {
$res[] = (($count != $k) OR ($last)) ? implode('', $t) : implode('', $t) . $e;
}
return $res;
}
function new_split($str, $len = 100) {
$arr = [];
$str = explode(PHP_EOL, $str);
$count = (count($str) - 1);
foreach ($str as $k => $value) {
$arr = array_merge($arr, chunk_split_unicode($value, $len, PHP_EOL, ($count != $k) ? FALSE : TRUE));
}
return $arr;
}
Приложения 1
-
можно пример строки?
-
Актуальные фриланс-проекты в категории PHP
Исправить CLSНеобходимо исправить Cumulative Layout Shift через код PageSpeed не видит этой проблемы, но через Google Chrome видно, что есть смещение макета для компьютерной версии страницы В ответе Google Search появилась ошибка касательно скорости компьютерной версии Необходимо… PHP, Веб-программирование ∙ 3 часа 8 минут назад ∙ 17 ставок |
Перенести полностью готовую адаптивную HTML5-структуру в WordPress.
12 000 UAH
Я ищу опытного WordPress-разработчика, который сможет преобразовать наш тщательно подготовленный статический HTML5/CSS3 код в высокопроизводимую кастомную WordPress-тему. Фронтенд уже практически готов (примерно 99%): семантическая разметка, метаданные и мультиязычная структура… CMS, PHP ∙ 6 часов 1 минута назад ∙ 46 ставок |
Интеграция GoPosПривет, делал кто нибудь интеграцию GoPos с кастомным сайтом для ресторана в Польше? Нужна помощь, у них очень скудная документация, есть только swagger и тот без описаний https://app.gopos.io/doc/swagger-ui/index.html Суть такая, использовали от них сайт для онлайн заказов,… PHP, Веб-программирование ∙ 21 час 55 минут назад ∙ 21 ставка |
Прописать мета данные АЛЬТ при помощи ИИСайт на Laravel , на сайте много изображений, для которых нужно прописать корректные по семантики и релевантные для странице АЛЬТ описание изображения в автоматическом режиме, с возможностью проверки AI и машинное обучение, PHP ∙ 1 день 19 часов назад ∙ 33 ставки |
Нужен разработчик для завершения и интеграции проекта по автоматическому сбору и обработке данных
700 UAH
Основная часть парсера уже реализована. Парсер работает на Windows-среде через Microsoft Edge: сайт имеет антибот-защиту, поэтому сбор данных выполняется не прямыми HTTP-запросами, а через живую браузерную сессию. Скрипты управляют открытой вкладкой Edge через Chrome DevTools… PHP, Веб-программирование ∙ 2 дня 1 час назад ∙ 24 ставки |
