2

150文字の長さの文字列があると想像してください。それぞれ最大50文字の長さの3つの部分に分割したいと思います。秘訣は、文字列を3つの部分に分割する間、単語をそのまま維持する必要があることです。

substr単語が半分になったかどうかを使って確認することができました。これを行うための他のエレガントな方法があるかどうか知りたいです。

また、文字列の文字数が150文字未満である可能性があることにも注意する必要があります。たとえば、長さが140文字の場合、50 + 50+40にする必要があります。

100未満の場合は50+50にする必要があります。50文字以下の場合は、文字列を分割しないでください。

これに取り組むためのあなたのアイデア/方法を聞いてうれしいです。

お手数をおかけしますが、よろしくお願いいたします。

4

2 に答える 2

5

php関数が必要なようですwordwrap()

 string wordwrap ( string $str [, int $width = 75 [, string $break = "\n" [, bool $cut = false ]]] )

文字列区切り文字を使用して、文字列を指定された数の文字にラップします。

于 2012-05-04T12:10:24.753 に答える
1

これがパフォーマンスの点で最良のソリューションだとは思いませんが、それは何かです

$text = 'Lorem te...';
$strings = array(0=>'');
$string_size = 50;
$ci = 0;
$current_len = 0;
foreach( explode(' ', $text) as $word ) {
  $word_len = strlen($word) + 1;
  if( ($current_len + $word_len) > ($string_size - 1) )
    $strings[$ci] = rtrim( $strings[$ci] );
    $ci++;
    $current_len = 0;
    $strings[$ci] = '';
  }

  $strings[$ci] .= $word.' '; 
  $current_len = $current_len + $word_len;
}
于 2012-05-04T12:16:04.657 に答える