php截取字符串时保持英文单词完整性的函数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php截取字符串时保持英文单词完整性的函数相关的知识,希望对你有一定的参考价值。

/** 
* 该函数截取英文字符串,不会打断英文单词,就是说不会把一个单词截取一半 
* note: 不适用于中文,当然改改也可以 
* note: 目前该函数有点小bug,$cutlength 不是指长度,而是计算所有单词的长度到了这个数时停止,其实也就是空格的长度被忽略了 
*/ 
function wordcut($string, $cutlength = 250, $replace = ‘…‘){ 
//长度不足直接返回 
if(mb_strlen($string) <= $cutlength){ 
return $string; 
}else{ 
//计算当前单词总长度 
$totalLength = 0; 
$datas = $newwords = array(); 
//打乱文本 
$wrap = wordwrap($string,1,"\t"); 
//组成数组 
$wraps = explode("\t",$wrap); 

foreach ($wraps as $tmp){ 
//计算每个单词的长度 
$datas[$tmp] = mb_strlen($tmp); 
} 
foreach ($datas as $word => $length){ 
//保存单词的总长度 
$totalLength += $length; 
//如果小于截取的长度则保存 
if($totalLength < $cutlength){ 
array_push($newwords,$word); 
}else{ 
break; 
} 
} 
//生成新字符串 
$str = trim(implode(" ",$newwords)); 
return empty($str) ? $str : $str.‘‘.$replace; 
} 
}


$str = ‘readonly this boolean attribute indicates that the user cannot modify the value of the control. Unlike the disabled attribute, the readonly attribute does not prevent the user from clicking or selecting in the control. long ge blog\’s The value of a read-only control is still submitted with the form.‘; 

echo wordcut($str,105); 

 

以上是关于php截取字符串时保持英文单词完整性的函数的主要内容,如果未能解决你的问题,请参考以下文章

21个常用代码片段

sql数据库截取字符串函数

php字符串截取函数

Objective-c 每 10 个字符换行一次(保持单词完整)

PHP 代码片段

字符串截取