Couper une chaine de caractères

WRInaute occasionnel
Salut à tous,

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

Code:
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 !
 
WRInaute passionné
Bonjour,

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

Code:
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
 
WRInaute passionné
anemone-clown a dit:
Bonjour,

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

Code:
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 ;-)
 
WRInaute accro
Code:
<?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;
	}
?>
 
WRInaute passionné
@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é???
 
Discussions similaires
Haut