par
caroube » 23 juin 2008, 15:16
Attention aux coupures à x caractères, parce que ça peut tomber au milieu d'un mot et donner des résultats bizarres : "
Le président est un contribuable comme les autres" tronqué après le 23e caractère donnera un résultat avec un sens légèrement différent (je vous laisse découvrir).
Pour ma part, pour les news, j'utilise cette fonction pompée dans Smarty
function truncate($string, $length = 80, $etc = '...', $break_words = false) {
if ($length == 0) return '';
if (strlen($string) > $length) {
$length -= strlen($etc);
if (!$break_words) $string = preg_replace('/\s+?(\S+)?$/', '', substr($string, 0, $length+1));
return substr($string, 0, $length).$etc;
} else return $string;
}
Avec le paramètre break_word à faux, elle coupe la phrase au premier espace après le Xième caractère et en plus rajoute trois points pour montrer que la phrase est tronquée.
Attention aux coupures à x caractères, parce que ça peut tomber au milieu d'un mot et donner des résultats bizarres : "[i]Le président est un contribuable comme les autres[/i]" tronqué après le 23e caractère donnera un résultat avec un sens légèrement différent (je vous laisse découvrir).
Pour ma part, pour les news, j'utilise cette fonction pompée dans Smarty
[php]
function truncate($string, $length = 80, $etc = '...', $break_words = false) {
if ($length == 0) return '';
if (strlen($string) > $length) {
$length -= strlen($etc);
if (!$break_words) $string = preg_replace('/\s+?(\S+)?$/', '', substr($string, 0, $length+1));
return substr($string, 0, $length).$etc;
} else return $string;
}
[/php]
Avec le paramètre break_word à faux, elle coupe la phrase au premier espace après le Xième caractère et en plus rajoute trois points pour montrer que la phrase est tronquée.