Couper une chaine de caractere trop longue

Résolu
mazflo007 Messages postés 137 Date d'inscription   Statut Membre Dernière intervention   -  
mazflo007 Messages postés 137 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
J'ai une table contenant un champ description.
Et je souhaite afficher plusieurs descriptions mais en meme temps il faut qu'elle soit écourté.
Pour couper une chaine j'ai trouvé ce code très bien

function tronque($str, $nb = 150)
{
// Si le nombre de caractères présents dans la chaine est supérieur au nombre
// maximum, alors on découpe la chaine au nombre de caractères
if (strlen($str) > $nb)
{
$str = substr($str, 0, $nb);
$position_espace = strrpos($str, " "); //on récupère l'emplacement du dernier espace dans la chaine, pour ne pas découper un mot.
$texte = substr($str, 0, $position_espace); //on redécoupe à la fin du dernier mot
$str = $str."..."; //puis on rajoute des ...
}
return $str; //on retourne la variable modifiée
}

Le problème est que j'arrive pas a intégrer ce code dans une boucle
comme ceci

while ($data = mysql_fetch_array($reponse)) {

$str = $data['description'] ;
function tronque($str, $nb = 150)
{
// Si le nombre de caractères présents dans la chaine est supérieur au nombre
// maximum, alors on découpe la chaine au nombre de caractères
if (strlen($str) > $nb)
{
$str = substr($str, 0, $nb);
$position_espace = strrpos($str, " "); //on récupère l'emplacement du dernier espace dans la chaine, pour ne pas découper un mot.
$texte = substr($str, 0, $position_espace); //on redécoupe à la fin du dernier mot
$str = $str."..."; //puis on rajoute des ...
}
return $str; //on retourne la variable modifiée
}
echo ('Description : '$str' <br>')
}

Ce code m'affiche la première description mais n'est qui n'est pas écourté et me donne une erreur sur les autres
Pouvez-vous m'aider ? SVP
Merci d'avance de vos réponses.
A voir également:

2 réponses

BanBan55 Messages postés 363 Date d'inscription   Statut Membre Dernière intervention   45
 
<?php

$chaine = $data['description'] ;
$lg_max = 40; //nombre de caractère autoriser

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

echo $chaine;

?>

beaucoup plus simple je trouve
11
mazflo007 Messages postés 137 Date d'inscription   Statut Membre Dernière intervention   3
 
merci beaucoup
1