2

想象一下,我有 150 个字符长的字符串。我想把它分成 3 个部分,每个部分最多 50 个字符。诀窍是在将字符串分成 3 部分时,我还必须保持单词完整。

我可以使用substr并检查它是否将单词切成两半。我想知道是否有任何其他优雅的方式来做到这一点。

我还必须记住,字符串可能少于 150 个字符。例如,如果它是 140 个字符,那么它应该是 50 + 50 + 40。

如果小于 100,则应为 50 + 50。如果为 50 个字符或更少,则不应分割字符串。

我很高兴听到你的想法/方法来解决这个问题。

提前感谢您的时间和关注。

4

2 回答 2

5

听起来你只想要 php 函数wordwrap()

 字符串自动换行(字符串 $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 回答