Tronquer un champ pour qu...

Eléphant du PHP | 74 Messages

01 mars 2006, 17:55

Re- à tous

Encore une question toute bète:
Comment tronquer un champs?
Je m'explique...
Je fais un SELECT etc... suivi d'un echo '$variable';
Mon echo est inséré dans un tableau Htm pour la mise en forme.
Mais comme mon champs est souvent trop long, je voudrais afficher seulement les 20 premiers caractères de mon champs suivi de point de suspension (voir titre du sujet).

Comment faire?

Merci d'avance :)

Avatar du membre
ViPHP
ViPHP | 3008 Messages

01 mars 2006, 17:59

<?php
// Pour tronquer une chaîne (dans un espace)
// trop longue et mettre à la suite 3 points évoquateurs :
$comment = "Un commentaire vraiment ";
$comment .= "très long et qu'il va falloir tronquer !";

//on donne une longueur maxi de caractères
$lg_max = 20;

if (strlen($comment) > $lg_max) {
    $comment = substr($comment, 0, $lg_max);

    //a partir de quelle lettre on doit couper la phrase
    $last_space = strrpos($comment, " "); 
    $comment = substr($comment, 0, $last_space)."...";
}
echo $comment;
?>
ou encore
function Tronquer_Texte($texte, $longeur_max)
{
    if (strlen($texte) > $longeur_max) 
    { 
    $texte = substr($texte, 0, $longeur_max); 
    $dernier_espace = strrpos($texte, " "); 
    $texte = substr($texte, 0, $dernier_espace)."..."; 
    } 

    return $texte;
}


echo Tronquer_Texte("Voici un exemple de texte tronqué.", 20);
Après tu l'adaptes à ton code ;)
Modifié en dernier par charabia le 02 mars 2006, 11:24, modifié 2 fois.

Petit nouveau ! | 8 Messages

01 mars 2006, 18:00

substr($chaine,0,20)

ca te va?
les posts se sont croises.. tres bien evidemmenty le cript au dessus..

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

01 mars 2006, 18:05

Ah tiens, c'est pas bête de rechercher l'espace pour pas couper au milieu d'un mot.. j'ai tendance à être un peu sauvage et tronquer comme ciesco :)

Eléphant du PHP | 74 Messages

01 mars 2006, 18:42

Bon bah, comma d'hab. Que dire à part :
Merci les gars (c'est une façon de parler, pas de mysoginisme ici ;) )

Rapide, efficace, nickel.

Bonne soirée à tous :merci: