Couper une chaine de caractere trop longue [Résolu/Fermé]

Signaler
Messages postés
137
Date d'inscription
vendredi 16 mai 2008
Statut
Membre
Dernière intervention
4 août 2015
-
Messages postés
137
Date d'inscription
vendredi 16 mai 2008
Statut
Membre
Dernière intervention
4 août 2015
-
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.

2 réponses

Messages postés
358
Date d'inscription
dimanche 24 février 2008
Statut
Membre
Dernière intervention
16 juillet 2016
44
<?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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 60511 internautes nous ont dit merci ce mois-ci

Messages postés
137
Date d'inscription
vendredi 16 mai 2008
Statut
Membre
Dernière intervention
4 août 2015
3
merci beaucoup