Magpierss et doublons

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par dudo, 4 Mai 2009.

  1. dudo
    dudo WRInaute impliqué
    Inscrit:
    10 Janvier 2004
    Messages:
    532
    J'aime reçus:
    0
    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

    Code:
    
    
    <?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;
    }
    ?>
    
     
  2. UsagiYojimbo
    UsagiYojimbo WRInaute accro
    Inscrit:
    23 Novembre 2005
    Messages:
    12 003
    J'aime reçus:
    128
    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.
     
  3. dudo
    dudo WRInaute impliqué
    Inscrit:
    10 Janvier 2004
    Messages:
    532
    J'aime reçus:
    0
    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 ?
     
  4. UsagiYojimbo
    UsagiYojimbo WRInaute accro
    Inscrit:
    23 Novembre 2005
    Messages:
    12 003
    J'aime reçus:
    128
    Code:
    <?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
     
  5. dudo
    dudo WRInaute impliqué
    Inscrit:
    10 Janvier 2004
    Messages:
    532
    J'aime reçus:
    0
    Chapeau pour l'idée ! le code fonctionne très bien et
    je ne voyais pas comment résoudre ce probleme sans
    passer par une bd
    merci
    ludo
     
  6. UsagiYojimbo
    UsagiYojimbo WRInaute accro
    Inscrit:
    23 Novembre 2005
    Messages:
    12 003
    J'aime reçus:
    128
    You're welcome !
     
Chargement...
Similar Threads - Magpierss doublons Forum Date
Warning: MagpieRSS: Failed to fetch Développement d'un site Web ou d'une appli mobile 15 Avril 2015
Aide sur MagpieRSS et balise Développement d'un site Web ou d'une appli mobile 24 Octobre 2011
Problème magpierss et caratères spéciaux Développement d'un site Web ou d'une appli mobile 3 Août 2011
XML & Parseur magpierss : Remplacement d'apostrophe par des points d'interrogation Administration d'un site Web 23 Septembre 2009
Tronquer les descriptions d'un flux rss sous magpierss ? Développement d'un site Web ou d'une appli mobile 30 Août 2009
Feedparser et magpierss : deux flux différents sur deux div Développement d'un site Web ou d'une appli mobile 17 Septembre 2008
Rss et rdf avec magpierss Développement d'un site Web ou d'une appli mobile 14 Août 2008
Problem pour parser un flux xml avec magpierss Développement d'un site Web ou d'une appli mobile 28 Juin 2008
Messages d'erreur Magpierss Développement d'un site Web ou d'une appli mobile 5 Mai 2008
Probleme d'utilisation de Magpierss Développement d'un site Web ou d'une appli mobile 9 Avril 2008
Problème installation magpierss Développement d'un site Web ou d'une appli mobile 13 Décembre 2007
Magpierss et noms de champs identiques dans flux RSS Développement d'un site Web ou d'une appli mobile 6 Novembre 2007
Flux RSS : <media:thumbnail> sous magpierss Développement d'un site Web ou d'une appli mobile 14 Octobre 2007
Paramétrer magpierss Développement d'un site Web ou d'une appli mobile 18 Septembre 2007
Installer magpierss Développement d'un site Web ou d'une appli mobile 17 Septembre 2007
Affichage des images dans description avec Magpierss Développement d'un site Web ou d'une appli mobile 3 Septembre 2007
Utilisation de MagpieRSS: à la place de ' Développement d'un site Web ou d'une appli mobile 1 Septembre 2007
Erreurs avec MagpieRSS Développement d'un site Web ou d'une appli mobile 20 Août 2007
Utilisation de magpierss Administration d'un site Web 9 Juillet 2007
Demande d'une info sur les erreurs MagpieRSS Développement d'un site Web ou d'une appli mobile 13 Mars 2007