magpierss et doublons
6 messages
• Page 1 sur 1
- dudo
- WRInaute occasionnel

- Messages: 456
- Inscription: 10 Jan 2004
magpierss et doublons
Bonjour,
Nombreux sont ceux qui connaissent la classe magpierss, je voudrais savoir
si certains ont trouvé le moyen d'éviter les doublons, sans passer par
un bdd. Plus précisément, en ce qui me concerne je parse notamment un flux ou $titre n'est jamais le
même mais ou la même $description peut revenir plusieur fois, je voudrais donc dans ce cas précis
éviter plusieurs fois l'affichage de la même description et ne reprendre que le titre.
Merci pour vos idées
ludo
Nombreux sont ceux qui connaissent la classe magpierss, je voudrais savoir
si certains ont trouvé le moyen d'éviter les doublons, sans passer par
un bdd. Plus précisément, en ce qui me concerne je parse notamment un flux ou $titre n'est jamais le
même mais ou la même $description peut revenir plusieur fois, je voudrais donc dans ce cas précis
éviter plusieurs fois l'affichage de la même description et ne reprendre que le titre.
Merci pour vos idées
ludo
- Code: Tout sélectionner
<?php
// inclusion de la classe magpierss
require_once("../../magpierss/rss_fetch.inc");
function FeedParser($url_feed, $nb_items_affiches=5)
{
// lecture du fichier distant (flux XML)
$rss = fetch_rss($url_feed);
if (is_array($rss->items))
{
// on ne recupere que les elements les + recents
$items = array_slice($rss->items, 0, $nb_items_affiches);
//--- version améliorée coupure à la hauteur de l'espace mot + trois
$html = "<div class=mnutabla>\n";
// boucle sur tous les elements
foreach ($items as $item)
{
$description = $item['description'];
$max=290;
if(strlen($description)>=$max){$description=substr($description,0,$max); $espace=strrpos($description," "); $description=substr($description,0,$espace)."..."; }
$descriptiona=substr($description,0,$espace)."...";
$html .= "<ul class='p'><li><a href=\"".$item['link']."\">";
$html .= $title."</a> : ";
$html .="".$description."</li></ul><br />";
}
$html .= "</ul>\n";
}
return $html;
}
?>
-

UsagiYojimbo - WRInaute accro

- Messages: 8575
- Inscription: 23 Nov 2005
Re: magpierss et doublons
Tu peux créer un tableau intermédiaire dans lequel tu stockes les descriptions, et à chaque passage tu vérifie que la description en cours n'est pas déjà présente dans ce tableau. Si c'est le cas, tu vides la variable $description.
- dudo
- WRInaute occasionnel

- Messages: 456
- Inscription: 10 Jan 2004
Re: magpierss et doublons
UsagiYojimbo a écrit:Tu peux créer un tableau intermédiaire dans lequel tu stockes les descriptions, et à chaque passage tu vérifie que la description en cours n'est pas déjà présente dans ce tableau. Si c'est le cas, tu vides la variable $description.
Merci, je ne comprend pas bien la démarche, chaque desciption sera forcément présente
dans le précédant tableau, tu n'as pas un exemple de code ?
-

UsagiYojimbo - WRInaute accro

- Messages: 8575
- Inscription: 23 Nov 2005
Re: magpierss et doublons
- Code: Tout sélectionner
<?php
// inclusion de la classe magpierss
require_once("../../magpierss/rss_fetch.inc");
function FeedParser($url_feed, $nb_items_affiches=5)
{
//initialisation du tableau inetrmediaire
$tab_desc = array();
// lecture du fichier distant (flux XML)
$rss = fetch_rss($url_feed);
if (is_array($rss->items))
{
// on ne recupere que les elements les + recents
$items = array_slice($rss->items, 0, $nb_items_affiches);
//--- version améliorée coupure à la hauteur de l'espace mot + trois
$html = "<div class=mnutabla>\n";
// boucle sur tous les elements
foreach ($items as $item)
{
si la description en cours de parcours n'est pas déjà présente dans le tableau intermédiaire
if (!in_array($item['description'],$tab_desc))
{
$description = $item['description'];
array_push($tab_desc,$item['description']);
}
else
{
//sinon on vide la variable description
$description = "";
}
$max=290;
if(strlen($description)>=$max){$description=substr($description,0,$max); $espace=strrpos($description," "); $description=substr($description,0,$espace)."..."; }
$descriptiona=substr($description,0,$espace)."...";
$html .= "<ul class='p'><li><a href=\"".$item['link']."\">";
$html .= $title."</a> : ";
$html .="".$description."</li></ul><br />";
}
$html .= "</ul>\n";
}
return $html;
}
?>
A tester
-

UsagiYojimbo - WRInaute accro

- Messages: 8575
- Inscription: 23 Nov 2005
Re: magpierss et doublons
You're welcome !
6 messages
• Page 1 sur 1
Lectures recommandées sur ce thème :
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité
