所以我有一个大约3800个字符的字符串,它的句子等等。
现在我正在通过某些东西运行字符串,虽然限制是1000,所以我怎么能把字符串分成4个部分,每个部分最多包含1000个字符,而不是将单词分成两半,有没有办法做到这一点?
由于
答案 0 :(得分:5)
您可以使用str_split
。
$string = "the_long_string";
$array = str_split($string, 1000); //$array will contain elements which each is 1000 chars long.
如果你想要不切断的话,请在切割之前将其转换为wordwrap
,如下所示
$string = "the_long_string";
$string = wordwrap($string, 1000, "||"); //assume your string doesn't contain `||`
$parts = explode("||", $string);
答案 1 :(得分:1)
答案 2 :(得分:1)
您可以将substr
用于此
$first = substr($string, 0, 1000);
$second = substr($string, 1001, 2000);
$third = substr($string, 2001, 3000);
$fourth = substr($string, 3001, 3800);
答案 3 :(得分: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
希望这有帮助!
答案 4 :(得分:0)
我将strpos与偏移量一起使用。
像
这样的东西$fullstring = "3800 characters";
$pos = $last = 0;
while($pos !== FALSE && $last <= 1000) {
$last = $pos;
$pos = strpos($fullstring, " ", $pos) + 1;
}
这将继续循环,直到$ last是第1000个字符之前的空格的最后位置,或者没有更多字符。然后,您只需要子行到该位置并分配给一个数组,对其余字符进行substr并覆盖$ fullstring,并将计数器重置为0(即在while (strlen($fullstring) > 0)
的代码周围添加一个循环