Tromqué un text a n caracteres

Soyez le premier à donner votre avis sur cette source.

Snippet vu 3 096 fois - Téléchargée 16 fois

Contenu du snippet

Cette fonction permet juste de couper un texte à n caractères près
on transmet à la fonction le texte original et le max de caractère à afficher
le résultat sera un texte avec des pointillés si toute fois le texte originale dépasse le max de caractère souhaité

Source / Exemple :


function troncate($texte_orig, $max_caracter)
{
 $len_texte = strlen($texte_orig);
     if ($len_texte > $max_caracter) 
	 {
	    $texte_final = substr($texte_orig, 0, $max_caracter)."...";
	 }
	 else
	 {
	  $texte_final =$texte_orig ;
	 }

  return $texte_final ;
}

Conclusion :


exemple d'utilisation
$max=15;
$FULLNAME="sidy mohamed barry"
$_texte=troncate($FULLNAME,$chr);
echo $_texte;
ce qui affichera:
sidy mohamed ba...

A voir également

Ajouter un commentaire

Commentaires

cs_LDDL
Messages postés
35
Date d'inscription
dimanche 27 avril 2003
Statut
Membre
Dernière intervention
7 mars 2013

Moi je t 'invite à lire la doc http://www.php.net/manual/fr/function.substr.php
TychoBrahe
Messages postés
1309
Date d'inscription
samedi 31 janvier 2009
Statut
Membre
Dernière intervention
5 juin 2013
11
(erf, oublié l'étoile dsl ^^)
TychoBrahe
Messages postés
1309
Date d'inscription
samedi 31 janvier 2009
Statut
Membre
Dernière intervention
5 juin 2013
11
Salut,

+1 pour JLN, il n'y a rien de nouveau, tout le monde peut le faire. Déjà que ça vaut à peine un snipet, alors un code... non quoi. Allez, une petite étoile quand même parce que, bien que ce soit inutile, ce n'est ni mauvais ni dangereux.
cs_emilia123
Messages postés
122
Date d'inscription
mercredi 19 décembre 2001
Statut
Membre
Dernière intervention
5 janvier 2009

et pour complément sur l'optimisation:
mettre le résultat d'une fonction dans une variable n'a d'intéret que si ce résultat est utilisé à plusieurs endroits, ce qui évite d'appeler plusieurs fois la même fonction.
Dans le cas du test sur la longueur, ce test n'est effectué qu'une seule fois, et donc le passage par une variable intermédiaire ne fait que "gaspiller" de la mémoire disponible.

---------------
$len_texte = strlen($texte_orig);
if ($len_texte > $max_caracter)
---------------
devrait être simplement :
---------------
if (strlen($texte_orig) > $max_caracter)
---------------

Et enfin, tu devrais permettre de pouvoir modifier les "..." pour pouvoir personnaliser encore plus ton code. Cela pourrait etre un 3eme parametre avec une valeur par défaut:
function troncate($texte_orig, $max_caracter, $texte_ajout='...')
et d'utiliser dans ton code "$texte_ajout" au lieu de "..." en dur.

EM.
cs_emilia123
Messages postés
122
Date d'inscription
mercredi 19 décembre 2001
Statut
Membre
Dernière intervention
5 janvier 2009

Bonjour,

Il y a quelques éléments à corriger :

1) dans l'exemple, le 2nd paramètre est "$chr" alors que cette variable n'est pas définie, il faut que cela soit "$max"

2) la "langue" utilisée n'est pas unique dans les noms des variables.
Le nom de tes variables n'est pas constant:
- A des endroits tu mélanges l'anglais et le français ($len_texte),
- A des endroits cela ne correspond à aucune des langues ($max_caracter=> c'est soit character=>EN, soit caractere=>FR),
- et des fois c'est français (texte_orig)
Il faut trouver et employer une seule méthode pour le nom des variables sinon c'est compliqué à relire et à comprendre.

Bonne continuation

EM.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.