Annonce ToutSurTout

Bienvenue sur toutsurtout.biz

Déjà 15 ans !

Radio TST

Si vous souhaitez participer vous aussi aux discussions sur le forum, il faut vous inscrire ou vous identifier.

Le Thème TST Automne est maintenant en place.

Les inscriptions sont actuellement OUVERTES.

Message 1 Discussion postée le 23-03-2012 à 18:03:51

Loic
Avatar de Loic


Titre: Administrateur d'élite
Avancement: Niveau 5
Lieu: Avec Solenne
Date d'inscription: 26-09-2009
Messages: 107 780
Site web

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).

// 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 peut également personnaliser l'echo (l'affichage du résultat) en ajoutant un lien vers la page contenant le texte intégral.

echo  $chaine.'...<a href="URL_de_la_page" title="lire la suite" >(Lire la suite)</a>';


http://www.toutsurtout.biz/img/UserBarTST.gif
http://www.toutsurtout.biz/img/Sign-Loic.gif
Loic DL un jour, Loic DL toujours ...