Maxy.fr

Limiter proprement la taille d’un texte en PHP

Il arrive parfois que l’on ai besoin de limiter la taille d’un texte à l’affichage, pour le résumé d’un article ou pour qu’un titre tienne sur une seule ligne par exemple.

J’ai pour cela réalisé une fonction PHP très simple d’utilisation, permettant de découper un texte proprement pour ne pas qu’il ne dépasse un nombre défini de caractères. Proprement c’est à dire quele texte sera découpé entre deux mots et non au milieu de l’un d’entre eux. Le code ajoute aussi « … » à la fin du texte lorsqu’il est découpé, si le nombre de caractères du texte est inférieur à la limite imposée, la fonction retourne le texte en entier.

Voici la fonction :

function limiteCaracteres($limite, $texte)
{
     //Retourne le texte tel quel si sa taille est inférieur à la limite :
     if(strlen($texte) <= $limite){ return $texte; }
 
     //Créé un tableau contenant chaque caractères du texte :
     $listeCaracteres = str_split($texte, 1);
 
     //Créé un tableau contenant la position (clé du tableau $listeCaracteres) de chaque espaces du texte :
     $rechercheEspaces = array_keys($listeCaracteres, ' ');
 
     //Si aucun espace n'est présent dans le texte, on le renvoi coupé à 30-3 caractères :
     if(count($rechercheEspaces) === 0){ return substr($texte, 0, ($limite-3)).'...'; }
 
     //Inverse l'ordre des valeurs du tableau :
     arsort($rechercheEspaces);
 
     //Parcours la liste des espaces (en partant du dernier) et trouve le premier en dessous de la limite :
     foreach ($rechercheEspaces as $positionEspace)
     {
          if($positionEspace <= $limite)
          {
               //Retourne le texte coupé entre deux mots en fonction de la limite :
               return substr($texte, 0, $positionEspace).'...';
          }
     }
 
     //Retourne le texte tel quel en cas d'erreur :
     return $texte;
 }

La fonction prend deux paramètres, le premier étant la limite du nombre de caractères souhaitée, le second étant le texte à découper.

Catégories : PHP

Par Guillaume le 21/11/2013 à 23:07

Partager l'article :

Articles similaires

Trier un tableau multidimensionnel en PHP

Il arrive parfois que l'on doivent trier un tableau contenant d'autres tableau suivant des valeurs pas directement accessibles. En soit on se retrouve bloqué car les fonctions de tries classique (asort(), ksort() ...) ne permettent pas de trier comme on le souhaite notre tableau. Sachez...

Enregistrer un tableau PHP dans un fichier

Il est parfois utile d'enregistrer dans un fichier des données en provenance d'un code PHP. Sachez qu'il est plutôt simple d'enregistrer un tableau de données dans un fichier en utilisant la fonction serialize().   Voici le code permettant d'enregistrer les données...

Utiliser la programmation pour résoudre un problème mathématiques

Vous avez sûrement entendu parlé de cet exercice de mathématiques qui fait tant parler de lui depuis quelques jours sur internet. Cet exercice a priori simple qu'un professeur Vietnamien a donné à faire à ses élèves d'une classe...