.01
.02
.03
.04
.05
.06
.07
.08
.09
.10
.11
.12
.13
.14
.15
.16
.17
.18
.19
.20
.21
.22
.23
.24
.25
.26
.27
.28
.29
.30
.31
.32
.33
.34
.35
.36
.37
.38
.39
.40
.41
.42
.43
.44
.45
.46
.47
.48
.49
.50
.51
.52
.53
.54
.55
.56
.57
.58
|
|
<?php
/******************************************************************************/
/* */
/* __ ____ */
/* ___ / / ___ / __/__ __ _____________ ___ */
/* / _ \/ _ \/ _ \_\ \/ _ \/ // / __/ __/ -_|_-< */
/* / .__/_//_/ .__/___/\___/\_,_/_/ \__/\__/___/ */
/* /_/ /_/ */
/* */
/* */
/******************************************************************************/
/* */
/* Titre : Tronquer une chaîne de caractères */
/* */
/* URL : http://www.phpsources.org/scripts348-PHP.htm */
/* Auteur : lamogere */
/* Date édition : 28 Fév 2008 */
/* Website auteur : http://www.toplien.fr */
/* */
/******************************************************************************/
//Pour tronquer une chaine de caractères trop longue au niveau d'un séparateur
//en gardant un minimum de caractères et en ajoutant un suffixe
$texte1 = 'ce texte est tronqué car il contient plus de 20 caractères';
echo reduit_texte($texte1, 15, 20, ' ', ' …');
// affiche : ce texte est tronqué …
$texte2 = 'ce texte est tronqué<br />car il est sur plusieurs lignes';
echo reduit_texte($texte2, 15, 20, '<br />', ' <a href="suite.html">Cliquez' .
' ici pour voir la suite</a>');
// affiche : ce texte est tronqué Cliquez ici pour voir la suite
$texte3 = "ce-texte-est-tronqué-a-50-caractères-car-il-ne-contient-pas-de-sép" .
"arateur";
echo reduit_texte($texte3, , 50, ' ', ' …');
// affiche : ce-texte-est-tronqué-a-50-caractères-car-il-ne-con …
function reduit_texte($texte, $minlen, $maxlen, $separateur = ' ', $suffix = '')
{
$resultat = $texte;
if (strlen($resultat) > $maxlen) {
if (($pos = strrpos(substr($resultat, , $maxlen + strlen( $separateur )),
$separateur)) !== false) {
if ($pos < $minlen) {
$resultat = substr($resultat, , $maxlen) . $suffix;
} else {
$resultat = substr($resultat, , $pos) . $suffix;
}
} else {
$resultat = substr($resultat, , $maxlen) . $suffix;
}
}
return $resultat;
}
?>
|