所以我有一个大约 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
在切割之前将其转换如下
$string = "the_long_string";
$string = wordwrap($string, 1000, "||"); //assume your string doesn't contain `||`
$parts = explode("||", $string);
你可以用substr
这个
$first = substr($string, 0, 1000);
$second = substr($string, 1001, 2000);
$third = substr($string, 2001, 3000);
$fourth = substr($string, 3001, 3800);
您可以使用以下方式拆分字符串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
希望这可以帮助!
我会使用带有偏移量的strpos 。
就像是
$fullstring = "3800 characters";
$pos = $last = 0;
while($pos !== FALSE && $last <= 1000) {
$last = $pos;
$pos = strpos($fullstring, " ", $pos) + 1;
}
这将继续循环,直到 $last 是第 1000 个字符之前空格的最后一个位置,或者没有更多字符。然后,您只需要 substr 到该位置并分配给一个数组,substr 其余字符并覆盖 $fullstring,并将计数器重置为 0(即在代码周围添加一个循环while (strlen($fullstring) > 0)