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;
}
Załączniki 1
-
можно пример строки?
-

Можно вырезать лишние \n в строке и сделать наглядный массив.
Не совсем понятно зачем разбивать строки по 640.
1. XXXXXXXXXXXXXX 2. CCCCCCCCCCCC 3. UUUUUUUUUU и т.д.
20. XXXXXXXXXXXXXX 21. CCCCCCCCCCCC 31. UUUUUUUUUU и т.д.
это не очень удобно для чтения
-
Aktualne zlecenia dla freelancerów w kategorii Parsowanie danych
Wymagany specjalista ds. promocji w Telegramie.
106 PLN
Zadania: zapraszanie rzeczywistych użytkowników z bazy nazw użytkowników do nowych czatów oraz wysyłanie wiadomości do docelowej bazy. Interesuje nas tylko jakościowy ruch i praca z żywą publicznością — wykonawców korzystających z botów, sztucznego zwiększania lub niskiej… Parsowanie danych, Promocja w sieciach społecznościowych (SMM) ∙ 1 godzina 22 minuty temu ∙ 2 oferty |
Zbieranie bazy danych B2B firm w Niemczech
148 PLN
Cel: Uzyskanie listy potencjalnych pracodawców (klientów) do wysyłki B2B. Region: Monachium (München) + promień 50 km. Wymagane nisze: Firmy budowlane (Bauunternehmen) Przemysł spożywczy (Lebensmittelhersteller, zakłady mięsne, piekarnie) Logistyka i kompleksy magazynowe… Parsowanie danych, Sprzedaż i generowanie leadów ∙ 3 godziny 38 minut temu ∙ 14 ofert |
Baza danych przewoźnikówInteresuje mnie zbieranie bazy danych przewoźników w Ukrainie na rok 2026, w tym cysterny, plandeki, wozy zbożowe i inne. Preferowane jest opracowanie tabeli. Wyszukiwanie i zbieranie informacji, Parsowanie danych ∙ 4 godziny 56 minut temu ∙ 22 oferty |
Konsultacja dotycząca parsowania subskrybentów kont InstagramWitam. Konieczne jest przeprowadzenie wstępnej oceny możliwości realizacji następującego zadania. Posiadam listę kont na Instagramie. Celem jest uzyskanie danych kontaktowych (w pierwszej kolejności adresów e-mail) użytkowników, którzy obserwują te konta. Wcześniej spotkałem… Parsowanie danych ∙ 3 dni 20 godzin temu ∙ 12 ofert |
Potrzebny specjalista do wyszukiwania kontaktów decydentów w UkrainieKonieczne jest zebranie bazy (lub gotowej bazy) kontaktów osób podejmujących decyzje (LPR) w firmach Ukrainy. Wyszukiwanie i zbieranie informacji, Parsowanie danych ∙ 4 dni temu ∙ 17 ofert |
