PHP有200个字符长的字符串,然后在最后一个空格处截断

PHP有200个字符长的字符串,然后在最后一个空格处截断,php,string,Php,String,我正在编写这段代码,将我的字符串改为200个字符长,然后删除最后一个空格,使我的字符串看起来像“this is my”而不是“this is my stri” 到目前为止,我得到的是: $description = substr($value['description'], 0, 200); 现在我希望它删除字符串中的最后一个空格。在谷歌搜索之后,我只找到了php trim函数,但没有删除最后一个,只是全部 有什么建议吗 function firstXChars($string, $chars

我正在编写这段代码,将我的字符串改为200个字符长,然后删除最后一个空格,使我的字符串看起来像“this is my”而不是“this is my stri”

到目前为止,我得到的是:

$description = substr($value['description'], 0, 200);
现在我希望它删除字符串中的最后一个空格。在谷歌搜索之后,我只找到了php trim函数,但没有删除最后一个,只是全部

有什么建议吗

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


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

函数mycolstring($longstring)
{
$stringarray=array();
如果(strlen($longstring)>=200){
$stringarray=explode(“,substr($longstring,0200));
}
否则{
$stringarray=explode(“,$longstring”);
}
$output=stringarray[0];

对于($i=1;$i),如果您希望它的长度为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 />";

但是
这是我的stri
的末尾没有空格,你打算删除最后一个
stri
单词吗?@AlanChavez:这不是这个单词的重复。嗨,KraneBird,是的,这正是我要找的。@user3557464:你能用一些输入和预期的输出编辑这个问题吗?对downvot有点好奇是的。这会在单词的末尾拆分字符串,并且在末尾没有空格。这只是因为人们不喜欢这个问题而进行的向下投票吗?还是因为不喜欢高代表性的用户回答这个问题?(免责声明:我没有对这个答案进行投票。)但我认为这肯定更好:
if(strlen($string)>200){echo substr($string,0,strrpos(substr)($string,0200),'');}
。仅供参考,纯代码答案通常会自动标记为低质量。这可能也是投票失败的原因。添加几句解释答案可以解决这两个问题。@AD7six:我知道某个地方有重复的答案,所以我没有回答。现在找到了。在另一个线程上看到这个答案有点惊讶。投票没有o现在像傻瓜一样接近:-)
<?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 />";