PHP字符串截取
Jun 21, 2016 am 08:52 AM
/**
* 字符截取 支持UTF8/GBK
* @param $string
* @param $length
* @param $dot
*/
function str_cut($string, $length, $dot = '...') {
$strlen = strlen($string);
if($strlen
$string = str_replace(array(' ',' ', '&', '"', ''', '“', '”', '—', '', '·', '…'), array('∵',' ', '&', '"', "'", '“', '”', '—', '', '·', '…'), $string);
$strcut = '';
if(strtolower(CHARSET) == 'utf-8') {
$length = intval($length-strlen($dot)-$length/3);
$n = $tn = $noc = 0;
while($n
$t = ord($string[$n]);
if($t == 9 $t == 10 (32
$tn = 1; $n++; $noc++;
} elseif(194
$tn = 2; $n += 2; $noc += 2;
} elseif(224
$tn = 3; $n += 3; $noc += 2;
} elseif(240
$tn = 4; $n += 4; $noc += 2;
} elseif(248
$tn = 5; $n += 5; $noc += 2;
} elseif($t == 252 $t == 253) {
$tn = 6; $n += 6; $noc += 2;
} else {
$n++;
}
if($noc >= $length) {
break;
}
}
if($noc > $length) {
$n -= $tn;
}
$strcut = substr($string, 0, $n);
$strcut = str_replace(array('∵', '&', '"', "'", '“', '”', '—', '', '·', '…'), array(' ', '&', '"', ''', '“', '”', '—', '', '·', '…'), $strcut);
} else {
$dotlen = strlen($dot);
$maxi = $length - $dotlen - 1;
$current_str = '';
$search_arr = array('&',' ', '"', "'", '“', '”', '—', '', '·', '…','∵');
$replace_arr = array('&',' ', '"', ''', '“', '”', '—', '', '·', '…',' ');
$search_flip = array_flip($search_arr);
for ($i = 0; $i
$current_str = ord($string[$i]) > 127 ? $string[$i].$string[++$i] : $string[$i];
if (in_array($current_str, $search_arr)) {
$key = $search_flip[$current_str];
$current_str = str_replace($search_arr[$key], $replace_arr[$key], $current_str);
}
$strcut .= $current_str;
}
}
return $strcut.$dot;
}

Article chaud

Outils chauds Tags

Article chaud

Tags d'article chaud

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Convertissez les types de données de base en chaînes à l'aide de la fonction String.valueOf() de Java

Comment convertir un tableau de caractères en chaîne

Utilisez la fonction String.replace() de Java pour remplacer des caractères (chaînes) dans une chaîne

Explication détaillée de 2 mots en chaîne, yyds

Comment utiliser la méthode split dans Java String

Utilisez la fonction String.length() de Java pour obtenir la longueur d'une chaîne

Comment utiliser la classe String de Java

Convertir une chaîne en minuscules à l'aide de la fonction String.toLowerCase() de Java
