compter nombre de caractères dans une chaine

Eléphant du PHP | 149 Messages

28 avr. 2005, 14:33

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
"Si tu travailles avec un marteau-piqueur pendant un tremblement de terre, désynchronise-toi, sinon tu travailles pour rien."
JC Vandamme.

Avatar du membre
ViPHP
ViPHP | 3008 Messages

28 avr. 2005, 14:51

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;
?>

Eléphant du PHP | 149 Messages

28 avr. 2005, 15:11

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!
"Si tu travailles avec un marteau-piqueur pendant un tremblement de terre, désynchronise-toi, sinon tu travailles pour rien."
JC Vandamme.

Avatar du membre
ViPHP
ViPHP | 3008 Messages

28 avr. 2005, 17:00

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,"...");

Eléphant du PHP | 149 Messages

29 avr. 2005, 09:48

Je préfère cette méthode sous forme de fonction, ça le fait bien!

Merci! :wink:
"Si tu travailles avec un marteau-piqueur pendant un tremblement de terre, désynchronise-toi, sinon tu travailles pour rien."
JC Vandamme.

Administrateur PHPfrance
Administrateur PHPfrance | 430 Messages

29 avr. 2005, 10:57

Résolu ?

Eléphant du PHP | 149 Messages

29 avr. 2005, 11:41

Pardon! J'ai oublié de cliquer sur resolu!
:oops:
"Si tu travailles avec un marteau-piqueur pendant un tremblement de terre, désynchronise-toi, sinon tu travailles pour rien."
JC Vandamme.