Разбить длинную строку на куски php

поэтому у меня есть строка, которая составляет около 3800 символов, это фраза слов и т. д.

Теперь я запускаю строку через что-то, хотя предел равен 1000, поэтому как я могу разбить строку на 4 части, каждая из которых содержит не более 1000 символов, а не сломать слова пополам, есть ли способ сделать это?

благодаря

вы можете использовать str_split .

  $string = "the_long_string"; $array = str_split($string, 1000); //$array will contain elements which each is 1000 chars long. 

если вы хотите, чтобы слова не wordwrap преобразуйте их через wordwrap до их резки следующим образом

  $string = "the_long_string"; $string = wordwrap($string, 1000, "||"); //assume your string doesn't contain `||` $parts = explode("||", $string); 

Вы можете использовать str_split

$parts = str_split($string, 1000);

Не уверен, что не сломал слова пополам, хотя

Вы можете использовать substr для этого

 $first = substr($string, 0, 1000); $second = substr($string, 1001, 2000); $third = substr($string, 2001, 3000); $fourth = substr($string, 3001, 3800); 

Я бы использовал strpos со смещением.

Что-то вроде

 $fullstring = "3800 characters"; $pos = $last = 0; while($pos !== FALSE && $last <= 1000) { $last = $pos; $pos = strpos($fullstring, " ", $pos) + 1; } 

Это будет продолжаться до тех пор, пока $ last не будет последней позицией пробела перед 1000-м символом, или больше символов. Затем вам просто нужно подстроить эту позицию и назначить массив, подставить остальные символы и перезаписать $ fullstring и сбросить счетчики до 0 (т. Е. Добавить цикл вокруг кода while (strlen($fullstring) > 0)

Вы можете разбить строку на str_split() :

Вот что я сделал бы:

 <?php $str = "sdasdasdsdkjsdkdjbskdbvksdbfksjdssssbfkdbfksdjbf"; $length = strlen($str); $parts = str_split($str, $length/4); foreach ($parts as $part) { echo $part."<br>"; } ?> 

Разделение данной строки на 4 равные части и вывод:

 sdasdasdsdkj sdkdjbskdbvk sdbfksjdssss bfkdbfksdjbf 

Надеюсь это поможет!