/**
* 文字过长,截取前后两端文字,中间部分用...连接
* @param string $string 要处理的文字
* @param int $max 文字长度
* @param string $rep 文字中间连接符
*/
function strCutMiddleWord($string, $max = 50, $rep = '...') {
$strlen = strlen($string);
// 文字数量多少
$wordslen = mb_strlen($string,"UTF-8");
if ($strlen <= $max || $wordslen <= $max) return $string;
$lengthtokeep = $max - strlen($rep);
if ($lengthtokeep <= 0) return $string;
$start = 0;
$end = 0;
if (($lengthtokeep % 2) == 0) {
$start = $lengthtokeep / 2;
$end = $start;
} else {
$start = intval($lengthtokeep / 2);
$end = $start + 1;
}
$i = $start;
$tmp_string = $string;
while ($i < $strlen) {
if (isset($tmp_string[$i]) and $tmp_string[$i] == ' ') {
$tmp_string = mb_substr($tmp_string, 0, $i, 'utf-8') . $rep;
$return = $tmp_string;
}
$i++;
}
$i = $end;
$tmp_string = strrev ($string);
while ($i < $strlen) {
if (isset($tmp_string[$i]) and $tmp_string[$i] == ' ') {
$tmp_string = mb_substr($tmp_string, 0, $i, 'utf-8');
$return .= strrev ($tmp_string);
}
$i++;
}
return mb_substr($string, 0, $start) . $rep . mb_substr($string, - $end);
}
PHP 实用小方法01-字符截取,保留两端文字,中间用...连接
于 2022-12-30 15:18:11 首次发布