//The simple version for 10 Characters from the beginning of the string
$string = substr($string,0,10).'...';
Mise à jour :
Sur la base de la suggestion de vérifier la longueur (et aussi de s'assurer que les longueurs sont similaires sur les cordes taillées et non taillées) :
$string = (strlen($string) > 13) ? substr($string,0,10).'...' : $string;
Vous obtiendrez donc une chaîne de 13 caractères maximum ; soit 13 (ou moins) caractères normaux, soit 10 caractères suivis de '...'
Mise à jour 2 :
Ou en tant que fonction :
function truncate($string, $length, $dots = "...") {
return (strlen($string) > $length) ? substr($string, 0, $length - strlen($dots)) . $dots : $string;
}
Mise à jour 3 :
Cela fait un moment que j'ai écrit cette réponse et je n'utilise plus ce code. Je préfère cette fonction qui évite de casser la chaîne au milieu d'un mot en utilisant la fonction wordwrap
fonction :
function truncate($string,$length=100,$append="…") {
$string = trim($string);
if(strlen($string) > $length) {
$string = wordwrap($string, $length);
$string = explode("\n", $string, 2);
$string = $string[0] . $append;
}
return $string;
}
6 votes
Il serait peut-être préférable d'utiliser le caractère d'ellipse
1 votes
Jetez un coup d'œil à ma réponse si vous voulez éviter les coupures de mots.
0 votes
theunixshell.blogspot.in/2012/12/
0 votes
Essayez ce lien, il peut vous aider... stackoverflow.com/a/26098951/3944217
0 votes
Voici une bonne comparaison de plusieurs techniques : Tronquer une chaîne de plusieurs octets à n caractères .