所以我有一個字符串,它大約是3800個字符,這是句詞等打破長字符串成片PHP的
現在,我通過一些運行字符串雖然極限是1000,所以我怎麼可能打破字符串分成4個部分,每個部分最多包含1000個字符,並且不會將單詞分爲兩半,有沒有辦法做到這一點?
感謝
所以我有一個字符串,它大約是3800個字符,這是句詞等打破長字符串成片PHP的
現在,我通過一些運行字符串雖然極限是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;
}
這將繼續循環,直到最後$是空間的第1000個字符之前的最後一個位置,或者有沒有更多的字符。然後,您只需將substr分配到該位置並分配給一個數組,然後分配其餘字符並覆蓋$ fullstring,並將計數器重置爲0(即,圍繞代碼while (strlen($fullstring) > 0)