2017-09-26 15 views
0

この文字列は、レポートに入れるには長すぎます。私のレポートはわずか36文字を使用する必要があります。 「を速い茶色のキツネがL飛び越え」 しかし、私は言葉で文を分割したい:のみ36文字を取得する場合、あなたが買ってあげるよう文字がない単語を検出するPHPの部分文字列(substr)

$value = "The quick brown fox jumps over the lazy dog" //43 character 

:私の文字列値はそれ以上であります文字ではないので、私はそれから2変数を作りたいです

$var1 = "The quick brown fox jumps over the" //instead of The quick brown fox jumps over the l 
$var2 = "lazy dog" 

どのように私はそれを行いますか?

+0

str_word_count(アレイを含む文字列のチャンクであろう。多分 –

答えて

3

ここでwordwrap()を使用する必要があります。このコードは、単語単位でadddingと制限のために毎回チェックし、任意の文字列で動作します

echo substr($value, 0, strpos(wordwrap($value, 36), "\n")); 
0
function limit_text($text, $limit) { 
     if (str_word_count($text, 0) > $limit) { 
      $words = str_word_count($text, 2); 
      $pos = array_keys($words); 
      $text = substr($text, 0, $pos[$limit]) . '...'; 
     } 
     return $text; 
    } 

echo limit_text('The quick brown fox jumps over the lazy dog', 5); 
0

:これを試してみてください。

$var1=""; $var2=""; 
$value="your string"; 
while ($var1.strlen<36) { 
    $n=strpos($value, " "); //length of first word 
    if (($var1.strlen +$n)<36) { 
     $var1=$var1+substr($value, 0, $n);//from beginning of value till the first 'space' char 
     $value = substr($value, $n); //removing first word 
    } 
} 
$var2=$value;//the remmaining is what is left for second row 
0

これは役に立ちます。結果)

$value = "The quick brown fox jumps over the lazy dog"; 
$arr = explode(" ",$value); 
$str_arr = array(); 
$str = $arr[0]; 
$char_limit = 36; 
foreach($arr as $key=>$value) 
{ 
    $tmp_str = isset($arr[$key + 1])?$arr[$key + 1]:""; 
    if(strlen($str." ".$tmp_str) <= $char_limit) 
    { 
     $str.=" ".$tmp_str; 
    } 
    else 
    { 
     $str_arr[]=$str; 
     $str=$tmp_str; 
    } 

} 
$str_arr[]=$str; 
print_r ($str_arr); 

DEMO

関連する問題