Exemple #1
0
 function update()
 {
     // Cree un objet pour accueillir le contenu du RSS : un document XML
     $doc = new DOMDocument();
     //Telecharge le fichier XML dans $rss
     $doc->load($this->url);
     // Recupère la liste (DOMNodeList) de tous les elements de l'arbre 'title'
     $nodeList = $doc->getElementsByTagName('title');
     // Met à jour le titre dans l'objet
     $this->titre = $nodeList->item(0)->textContent;
     // Recupère la liste de toutes les dates
     $nodeList = $doc->getElementsByTagName('pubDate');
     //Met à jour la date dans l'objet
     $this->date = $nodeList->item(0)->textContent;
     //recupère la liste des url
     $nodeList = $doc->getElementsByTagName('link');
     //met à jour la date dans l'objet
     $this->url = $nodeList->item(0)->textContent;
     //met à jour l'image de l'objet
     $nodeList = $doc->getElementsByTagName('enclosure');
     $this->enclosure = $nodeList->item(0)->textContent;
     $nomLocalImage = 1;
     // Recupère tous les items du flux RSS
     foreach ($doc->getElementsByTagName('item') as $node) {
         $nouvelle = new Nouvelle();
         // Met à jour la nouvelle avec l'information téléchargée
         $nouvelle->update($node);
         // Télécharge l'image
         $nouvelle->downloadImage($node, $nomLocalImage);
         // on ajoute la nouvelle courante a la liste
         $this->nouvelles[] = $nouvelle;
     }
 }
Exemple #2
0
 function update()
 {
     require_once 'Nouvelle.class.php';
     require_once 'DAO.class.php';
     // Cree un objet pour accueillir le contenu du RSS : un document XML
     $doc = new DOMDocument();
     //Telecharge le fichier XML dans $rss
     $doc->load($this->url);
     // Recupère la liste (DOMNodeList) de tous les elements de l'arbre 'title'
     $nodeList = $doc->getElementsByTagName('title');
     // Met à jour le titre dans l'objet
     $this->titre = $nodeList->item(0)->textContent;
     // Recupère la liste (DOMNodeList) de tous les elements de l'arbre 'title'
     $nodeList = $doc->getElementsByTagName('pubDate');
     // Met à jour la date dans l'objet
     $this->date = $nodeList->item(0)->textContent;
     $docNodeList = $doc->getElementsByTagName('item');
     $dao = new DAO();
     $dao->createRSS($this->url);
     $id = $dao->returnIdFromURL($this->url);
     $table = array();
     $nomLocalImage = 1;
     foreach ($docNodeList as $nouvelle) {
         $tempNouvelle = new Nouvelle();
         $tempNouvelle->update($nouvelle);
         $tempNouvelle->downloadImage($nouvelle, $nomLocalImage);
         $dao->createNouvelle($tempNouvelle, $id);
         $nomLocalImage++;
         $table[] = $tempNouvelle;
     }
     $this->nouvelles = $table;
 }
Exemple #3
0
 function update()
 {
     global $dao;
     // On corrige les erreurs de typo dans les RSS (merci les developpeurs de RSS...)
     $filename = 'xml_files/tmp.xml';
     $str = implode("", file($this->url));
     if (!file_exists($filename)) {
         file_put_contents($filename, $str);
     }
     $fp = fopen($filename, 'w');
     $newStr = str_replace('&', '&', $str);
     fwrite($fp, $newStr, strlen($newStr));
     // Cree un objet pour accueillir le contenu du RSS : un document XML
     $doc = new DOMDocument();
     // Telecharge le fichier XML
     $doc->load($filename);
     // Recupère les éléments principaux du flux
     $nodeTitle = $doc->getElementsByTagName('title');
     $nodePubDate = $doc->getElementsByTagName('pubDate');
     // On les met à jour
     $this->titre = $nodeTitle->item(0)->textContent;
     $this->date = $nodePubDate->item(0)->textContent;
     // Mise à jour du RSS dans la BDD (et récupération de l'id assigné au flux)
     $this->id = $dao->updateRSS($this)['id'];
     // Fetch et reverse les items trouvés
     $items = array();
     foreach ($doc->getElementsByTagName('item') as $item) {
         $items[] = $item;
     }
     $items = array_reverse($items);
     // Parcours les items, crée une nouvelle, la met à jour, et tente de l'insérer dans la BDD
     foreach ($items as $node) {
         $nouvelle = new Nouvelle();
         // Met à jour la nouvelle avec l'information téléchargée
         $nouvelle->update($node);
         // Tente de la créer dans la BDD, ne sera pas fait si elle existe déjà
         $dao->createNouvelle($nouvelle, $this->id);
     }
     // On récupère les nouvelles depuis la bdd
     $this->nouvelles = $dao->getNouvellesFromRSS($this->url);
 }