2013-07-06 57 views
0

所以我有一個字符串,它大約是3800個字符,這是句詞等打破長字符串成片PHP的

現在,我通過一些運行字符串雖然極限是1000,所以我怎麼可能打破字符串分成4個部分,每個部分最多包含1000個字符,並且不會將單詞分爲兩半,有沒有辦法做到這一點?

感謝

回答

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

您可以使用str_split

$parts = str_split($string, 1000);

不知道一半不破的話,雖然

1

您可以使用substr這個

$first = substr($string, 0, 1000); 
$second = substr($string, 1001, 2000); 
$third = substr($string, 2001, 3000); 
$fourth = substr($string, 3001, 3800); 
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 

希望這有助於!

0

我會用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)