PHP的字符串长度为200个字符,然后在最后一个空格处切断

时间:2014-05-08 14:49:48

标签: php string

我正在处理这段代码,它会占用我的字符串并使其长度为200个字符然后删除最后一个空白区域,这样我的字符串就会显示为“这是我的'而不是'这是我的stri'

这是我到目前为止所得到的:

$description = substr($value['description'], 0, 200);

现在我希望它删除字符串中的最后一个空白区域。谷歌之后,我发现的只是php修剪功能,但没有关于删除最后一个,只是所有..

任何提示?

3 个答案:

答案 0 :(得分:0)

 function mycoolstring($longstring)
      {
          $stringarray=array();
          if(strlen($longstring)>=200){
          $stringarray=explode(" ",substr($longstring,0,200));
          }
          else{
          $stringarray=explode(" ",$longstring);
          }
          $output=stringarray[0];
          for($i=1;$i<count($stringarray)-1;$i++;
             {
                $output.=" " . $stringarray[$i];
             }
          return $output;
      }
  echo mycoolstring($value['discription']);

这可能是一个奇怪的逻辑,但它应该工作。任何人看到错误请告诉我或编辑它。 :)

答案 1 :(得分:0)

如果你想让它长达200个字符,但是如果你不想让最后一个字只是部分,它应该是这样的:

<?php
   mb_internal_encoding('UTF-8');

   $value['description'] = 'avbd wreiuui ewrwrewre';

   $desiredLength = 8; 

   if (mb_strlen($value['description']) <=  $desiredLength) {
     $description = $value['description'];           
   }
   else {       
     $description = mb_substr($value['description'], 0, mb_strpos($value['description'],' ',$desiredLength-1));
   }


   echo $description."<br />";

答案 2 :(得分:-1)

function firstXChars($string, $chars = 100)  { 
    preg_match('/^.{0,' . $chars. '}(?:.*?)\b/iu', $string, $matches); 
    return $matches[0]; 
} 


echo firstXChars($value['description'], 200);

Demo