Couper une chaine de caractères

modv
WRInaute impliqué
WRInaute impliqué
 
Messages: 551
Inscription: 31 Oct 2007

Couper une chaine de caractères

Message le Mar Mai 19, 2009 11:37

Salut à tous,

Je cherche le moyen de couper une chaine de caractères sans découper un mot, moi j'utilise :

Code: Tout sélectionner
if(strlen($row["desc"])>68) {
                     $row["desc"] = str_cut($row["desc"],68);
                     $row["desc"] = $row["desc"].'...';
                  }


Mais il y a quelque chose de plus court et plus efficace il me semble !


5_legs
WRInaute passionné
WRInaute passionné
 
Messages: 2072
Inscription: 30 Avr 2006

Re: Couper une chaine de caractères

Message le Mar Mai 19, 2009 11:56

Bonjour,

Tu peux essayer ça ;-)

http://xewing.com/r3f9eorr


anemone-clown
WRInaute passionné
WRInaute passionné
 
Messages: 1276
Inscription: 11 Nov 2007

Re: Couper une chaine de caractères

Message le Mar Mai 19, 2009 14:55

Bonjour,

d'où sort cette fonction str_cut??? Je connais mb_strcut dans le cas du multibytes, mais sinon???

Code: Tout sélectionner
function TruncateString($phrase, $longueurMax = 150) {
    $phrase = substr(trim($phrase), 0, $longueurMax);
    $pos = strrpos($phrase, " ");
    $phrase = substr($phrase, 0, $pos);
    if ((substr($phrase,-1,1) == ",") or (substr($phrase,-1,1) == ".")) {
        $phrase = substr($phrase,0,-1);
    }
    if ($pos === false) {
        $phrase = $phrase;
    }
    else {
        $phrase = $phrase . "...";
    }
return $phrase;
}


source : -http://fr3.php.net/manual/fr/function.strrpos.php


5_legs
WRInaute passionné
WRInaute passionné
 
Messages: 2072
Inscription: 30 Avr 2006

Re: Couper une chaine de caractères

Message le Mar Mai 19, 2009 16:29

anemone-clown a écrit:Bonjour,

d'où sort cette fonction str_cut??? Je connais mb_strcut dans le cas du multibytes, mais sinon???

Code: Tout sélectionner
function TruncateString($phrase, $longueurMax = 150) {
    $phrase = substr(trim($phrase), 0, $longueurMax);
    $pos = strrpos($phrase, " ");
    $phrase = substr($phrase, 0, $pos);
    if ((substr($phrase,-1,1) == ",") or (substr($phrase,-1,1) == ".")) {
        $phrase = substr($phrase,0,-1);
    }
    if ($pos === false) {
        $phrase = $phrase;
    }
    else {
        $phrase = $phrase . "...";
    }
return $phrase;
}


source : -http://fr3.php.net/manual/fr/function.strrpos.php



En tout cas pour l'utiliser à plusieurs endroits : cette fonction fonctionne à merveille ;-)


spout
WRInaute accro
WRInaute accro
 
Messages: 4377
Inscription: 14 Mai 2003

Re: Couper une chaine de caractères

Message le Mar Mai 19, 2009 17:31

Code: Tout sélectionner
<?php
function truncate($string, $max, $rep = '...') {
      $stringlength = strlen($string);
      $string = $string." ";
      $string = substr($string,0,$max);
      $string = substr($string,0,strrpos($string,' '));
      if($stringlength > $max)
         $string = $string.$rep;
   
      return $string;
   }
?>


anemone-clown
WRInaute passionné
WRInaute passionné
 
Messages: 1276
Inscription: 11 Nov 2007

Re: Couper une chaine de caractères

Message le Ven Mai 22, 2009 9:50

@spout : à part que la fonction que tu as mis n'enlèves pas le surplus de virgules et points à la fin de la chaîne :-P , elle fait quoi de plus par rapport à celle que j'ai indiqué???


5_legs
WRInaute passionné
WRInaute passionné
 
Messages: 2072
Inscription: 30 Avr 2006

Re: Couper une chaine de caractères

Message le Jeu Mai 28, 2009 19:32

@vdom Tu as trouvé ce que tu voulais ? :roll:


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités