Php 将字符串分成三部分,保持单词完整

Php 将字符串分成三部分,保持单词完整,php,regex,string,substr,Php,Regex,String,Substr,假设我有150个字符长的字符串。我想把它分成3部分,每个部分最多50个字符。诀窍是我还必须保持单词完整,同时将字符串分为3部分 我可以使用substr并检查它是否将单词切成两半。我想知道是否有其他优雅的方式来做到这一点 我还必须记住,字符串可能少于150个字符。例如,如果长度为140个字符,则应为50+50+40 如果小于100,则应为50+50。如果是50个字符或更少,则不应分割字符串 我很高兴听到你的想法/方法 提前感谢您的时间和关注。听起来您只是想要php函数 字符串换行符(字符串$str

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

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

我还必须记住,字符串可能少于150个字符。例如,如果长度为140个字符,则应为50+50+40

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

我很高兴听到你的想法/方法


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

听起来您只是想要php函数

字符串换行符(字符串$str[,int$width=75[,字符串$break=“\n”[,bool$cut=false]])

使用字符串分隔符将字符串包装为给定数量的字符


我不认为这是性能方面最好的解决方案,但这是有意义的

$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;
}

可能重复的裁判:这是一个快速的,我不知道为什么我错过了它。非常感谢。这或多或少是我在看到AD76Solution之前所拥有的。感谢您的关注。似乎
wordwrap()
是最优雅的方式。啊,是的,wordwrap似乎是完美的解决方案!