PHP et MagpieRSS, couper une chaine de caractères

WRInaute discret
Bonjour !

J'utilise la méthode donnée par Webrankinfo pour intégrer MagpieRSS sur mon site, ça fonctionne bien mais les noms des articles du flux RSS que je récupère sont souvent trop longs pour être affichés sur une seule ligne. J'aimerai rajouter du code pour que, par exemple, si la chaine de caractères dépasse 20 caractères, elle soit coupée et terminée par des points de suspensions pour que ça tienne sur une seule ligne. J'ai essayé quelques trucs mais comme je n'y connais rien en php ...

Voilà le code que j'utilise :

Code:
function FeedParser($url_feed, $nb_items_affiches=5)
{
  // lecture du fichier distant (flux XML)
  $rss = fetch_rss($url_feed);

  // si la lecture s'est bien passee, on lit les elements
  if (is_array($rss->items))
  {
    // on ne recupere que les elements les + recents
    $items = array_slice($rss->items, 0, $nb_items_affiches);

    // debut de la liste
    // (vous pouvez indiquer un style CSS pour la formater)
    $html = "\n";

    // boucle sur tous les elements
    foreach ($items as $item)
    {
      $html .= "<a href=\"".$item['link']."\">";
      $html .= $item['title']."</a><br>\n";
    }
    $html .= "\n";
  }

  // retourne le code HTML a inclure dans la page
  return $html;
}

Merci d'avance !
 
WRInaute discret
Bonjour,

à la place de :
Code:
$html .= $item['title']."</a><br>\n";
tu peux écrire :

Code:
$titre=$item['title'];
if (strlen($titre)>20){
  $titre=substr($titre,0,20).'...';
}
$html .= $titre."</a><br>\n";
 
WRInaute discret
ou

Code:
$titre=$item['title'];
if (strlen($titre)>20){
  $titre=substr($titre,0,17).'...';
}
$html .= $titre."</a><br>\n";

si tu ne veux absolument pas que ça dépasse 20 caractères ;) (car les "..." comptent pour 3 ;) 8)
 
Discussions similaires
Haut