[Tuto PHP] Couper une chaine de caractères proprement

Trouvez de l'aide grâce à des tutoriels en image. Plusieurs thématiques liées à l'informatique sont disponibles. Vous pouvez proposer vos tutoriels à la suite de ce message.
Verrouillé
Avatar du membre
Keroin
Administrateur
Administrateur
Messages : 1786
Enregistré le : lundi, 27 mars 2006, 16:06
Configuration informatique : -
Tour :
Boitier Corsair 570X Crystal
CPU Intel Core i9-9900K
WaterCooling - Corsair H100i RGB Platinium
32 Go Corsair Vengeance RGB PRO DDR4
Asus ROG Maximus X HERO
CG : MSI Armor OC GTX1070 8 GO
Corsair k95 rgb platinum mécanique + Logitech MX master Pro (souris)
3x Samsung Syncmaster P2450H Eyefinity + 1 Dell UltraSharp U2913WM
Alimentation Corsair HX1200i

Portable :
Lenovo Thinkpad Yoga X1
Intel I7 8550U
16 Go RAM
.
NAS Synology DS415+
Configuration téléphonie : - Samsung Galaxy Note 10+
- Samsung Galaxy Note 8
- Samsung Galaxy S7 Edge
- Samsung Galaxy Note 3
- Samsung Galaxy Note 2
- HTC Sensation Z710e
- HTC Leo Touch HD 2
- HTC Blackstone Touch HD
Localisation : On the web again...What else...
Contact :

[Tuto PHP] Couper une chaine de caractères proprement

Message par Keroin »

Tuto : Couper une chaine de caractères sans couper au milieu d'un mot


Voici une petite fonction PHP qui va permettre de découper automatiquement un texte récupéré depuis une base mysql (par exemple) sans que cette coupure arrive au milieu d'un mot. Cette fonction est utile si vous souhaitez n'afficher que les premier mots d'un texte (en guise d'introduction par exemple).

Code : Tout sélectionner

// on peut remplacer par une donnée issue d'une base sql (ex: $chaine = $sql['texte'];)
$chaine = "Le texte à tronquer"; 

$lg_max = 160; //nombre de caractères autorisés

//On vérifie si le texte est plus grand que le nombre de caractères spécifiés
if (strlen($chaine) > $lg_max) 

//Si la réponse est non le script ne fait rien mais si c'est oui on continue...
{
    $chaine = substr($chaine, 0, $lg_max);
//on cherche l'espace le plus proche du maximum des caractères autorisés (ici 160)    
    $last_space = strrpos($chaine, " "); 
//On ajoute ... à la suite de cet espace    
    $chaine = substr($chaine, 0, $last_space)."..."; 
}

echo $chaine;
        
On peut également personnaliser l'echo (l'affichage du résultat) en ajoutant un lien vers la page contenant le texte intégral

Code : Tout sélectionner

echo  $chaine.'...<a href="URL_de_la_page" title="lire la suite" >(Lire la suite)</a>';       
Vous pouvez commenter ou posez vos questions sur ce tutoriel à la suite de ce message.
Pas de demande de support en MP ou par mail, le forum est là pour ça!
Règles du forum!
Pensez à personnaliser votre profil via le "panneau de l'utilisateur".

Verrouillé