Page 1 sur 1

compter nombre de caractères dans une chaine

Posté : 28 avr. 2005, 14:33
par manuscle
Bonjour!

J'aimerais savoir si il existe une fonction en php qui permet de remplacer la fin d'un chaine par une autre chaine si celle-ci est trop longue?

Je m'explique:

$chaine = "hello world";
$remplace = " ...";

Si $chaine contient plus de 5 caractères (espaces compris), alors j'affiche:

$chane{5} . $remplace

ce qui donnerais: hello ...

Merci pour votre aide!

Manuscle

Posté : 28 avr. 2005, 14:51
par charabia
Voili voilou ;)
<?php
$comment = "Voici le texte super long qu'il faudra tronquer et remplacer la fin par trois petits points";
$lg_max = 40;

if (strlen($comment) > $lg_max)
{
    $comment = substr($comment, 0, $lg_max);
    $last_space = strrpos($comment, " "); 
    $comment = substr($comment, 0, $last_space)."...";
}

echo $comment;
?>

Posté : 28 avr. 2005, 15:11
par manuscle
Merci c'est trop col! :D

Par contre, c'est bizare car lorsque la chaine ne contient que des chiffres ça n'affiche que les trois points!

Posté : 28 avr. 2005, 17:00
par charabia
Tentes avec cette fonction qui est paramétrable :
function trunc_str($texte,$length,$end_str)
{
if(strlen($texte) <= $length) return $texte;
return trim(substr($texte,0,$length))."$end_str";
}

echo trunc_str("Hello World !",5,"...");

Posté : 29 avr. 2005, 09:48
par manuscle
Je préfère cette méthode sous forme de fonction, ça le fait bien!

Merci! :wink:

Posté : 29 avr. 2005, 10:57
par cerber
Résolu ?

Posté : 29 avr. 2005, 11:41
par manuscle
Pardon! J'ai oublié de cliquer sur resolu!
:oops: