Help XML/RSS/PHP

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par scorto, 25 Décembre 2007.

  1. scorto
    scorto Nouveau WRInaute
    Inscrit:
    25 Décembre 2007
    Messages:
    4
    J'aime reçus:
    0
    Bonjour à tous et bonnes fetes :)

    Voilà j'essaie depuis hier d'inclure un script pour générer un fichier xml pour créer un flux rss pour mon site.

    Je me suis servi d'un tuto là: http://www.siteduzero.com/tuto-3-695...ec-domxml.html

    Problème:

    mon fichier xml est introuvable sur le serveur et je n'ai pas de message d'erreur lorsque je lance la page php comprenant le code.

    D'où cela peut il venir?

    Voici les codes:

    Page flux_rss.php:

    ______________________________________________________________
    <?php


    function &init_news_rss(&$xml_file)
    {
    $root = $xml_file->create_element("rss"); //création de l'element
    $root->set_attribute("version", "2.0"); //on lui ajoute un attribut
    $root = $xml_file->append_child($root); //on l'insère dans le noeud parent (ici root qui est "rss")

    $channel = $xml_file->create_element("channel");
    $channel = $root->append_child($channel);

    $desc = $xml_file->create_element("description");
    $desc = $channel->append_child($desc);
    $text_desc = $xml_file->create_text_node("Partage de connaissances en tout genre"); //on insère du texte entre les balies <description></description>
    $text_desc = $desc->append_child($text_desc);

    $link = $xml_file->create_element("link");
    $link = $channel->append_child($link);
    $text_link = $xml_file->create_text_node("http://creachriss.free.fr");
    $text_link = $link->append_child($text_link);

    $title = $xml_file->create_element("title");
    $title = $channel->append_child($title);
    $text_title = $xml_file->create_text_node("PbRanking");
    $text_title = $title->append_child($text_title);

    return $channel;
    }

    function add_news_node(&$parent, $root, $id, $pseudo, $titre, $contenu, $date)
    {
    $item = $parent->create_element("item");
    $item = $root->append_child($item);

    $title = $parent->create_element("title");
    $title = $item->append_child($title);
    $text_title = $parent->create_text_node($titre);
    $text_title = $title->append_child($text_title);

    $link = $parent->create_element("link");
    $link = $item->append_child($link);
    $text_link = $parent->create_text_node("http://creachriss.free.fr/rss_news".$id.".html");
    $text_link = $link->append_child($text_link);

    $desc = $parent->create_element("description");
    $desc = $item->append_child($desc);
    $text_desc = $parent->create_text_node($contenu);
    $text_desc = $desc->append_child($text_desc);

    $com = $parent->create_element("comments");
    $com = $item->append_child($com);
    $text_com = $parent->create_text_node("http://creachriss.free.fr/news-11-".$id.".html");
    $text_com = $com->append_child($text_com);

    $author = $parent->create_element("author");
    $author = $item->append_child($author);
    $text_author = $parent->create_text_node($pseudo);
    $text_author = $author->append_child($text_author);

    $pubdate = $parent->create_element("pubDate");
    $pubdate = $item->append_child($pubdate);
    $text_date = $parent->create_text_node($date);
    $text_date = $pubdate->append_child($text_date);

    $guid = $parent->create_element("guid");
    $guid = $item->append_child($guid);
    $text_guid = $parent->create_text_node("http://creachriss.free.fr/rss_news".$id.".html");
    $text_guid = $guid->append_child($text_guid);

    $src = $parent->create_element("source");
    $src = $item->append_child($src);
    $text_src = $parent->create_text_node("http://creachriss.free.fr");
    $text_src = $src->append_child($text_src);
    }

    function rebuild_rss()
    {
    //On se connecte à la BDD
    mysql_connect("localhost", "mon login", "mon mdp") or die(mysql_error());
    mysql_select_db("creachriss") or die(mysql_error());

    //On récupère les news
    $nws = mysql_query("SELECT news_id, member_add_id, news_title, news_text, news_date_add FROM pms_news WHERE 1 ORDER BY news_date_add DESC LIMIT 0 OFFSET 10")or die(mysql_error());

    //On crée le fichier XML
    $xml_file = domxml_new_doc("1.0");

    //On initialise le fichier XML pour le flux RSS
    $channel = init_news_rss($xml_file);

    //On ajoute chaque news au fichier RSS
    while($news = mysql_fetch_assoc($nws)or die(mysql_error()))
    {
    add_news_node($xml_file, $channel, $news["news_id"], $news["member_add_id"], $news["news_title"], $news["news_text"], date("d/m/Y H:i", $news["news_date_add"]));
    }

    //On écrit le fichier
    $xml_file->dump_file("flux_rss.xml");
    }
    ?>

    _______________________________________________________________

    Dans le fichier index.php

    J'ai mis en fin de code:
    require('flux_rss.php');
    rebuild_rss();

    ______________________________________________________________

    Merci de votre aide ;)
     
  2. Chou78125
    Chou78125 Nouveau WRInaute
    Inscrit:
    7 Janvier 2008
    Messages:
    6
    J'aime reçus:
    0
    Salut t'a essayer avec la fonction include ?

    Peut-être je suis pas un pro mais essaye comme même

    ciao
     
  3. zeb
    zeb WRInaute accro
    Inscrit:
    5 Décembre 2004
    Messages:
    12 021
    J'aime reçus:
    1
    je viens de faire cela avec un fopen ce matin, cela m'a pris 30 mn et c'est basique.

    ce que je veux dire c'est que ton code est super compliqué.

    ton contenu semble être en base.
    l'entête xml ne change jamais (mis a part la date)

    donc concatène une chaîne toute bête et écrit le fichier dans la foulée sur le disque.

    Code:
    	$xml= '<?xml version="1.0" encoding="iso-8859-1"?>
    <rss version="2.0" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
    <channel>
    <title>...</title>
    <link>...</link>
    <description>...</description>
    <copyright>...</copyright>
    <pubDate>'.date("D").', '.date("d").' '.date("M").' '.date("Y").' '.date("H").':'.date("i").':'.date("s").' GMT</pubDate>
    ';
    	
    	
    	$sql = "SELECT * FROM info ORDER BY ID desc LIMIT 0,7";
    	$data = mysql_query($sql);
    		
    	while($record = mysql_fetch_array($data)){
    		$ID = $record[0];
    		$titre = $record[1];
    		$image = $record[2];
    		$descriptif = $record[3];
    		$lien = $record[4];
    		$cote_img = $record[5];
    		$ordre = $record[6];
    		$date_deb = $record[7];
    		$date_fin = $record[8];
    		$keyword = $record[9];
    		$description = $record[10];
    		
    		$fichier = $ID."-".accent($titre).".php";
    		$url = "http://.../info/".$fichier;
    		$xml.="<item>
      <title>$titre</title>
      <link>$url</link>
      <description>$description</description>
      <pubDate>$date_deb</pubDate>
    </item>
    ";
    		
    	}
    	
    	$xml .='</channel>
    </rss>';
    	$fd = fopen($HTTP_SERVER_VARS['DOCUMENT_ROOT']."/rss-actu.xml", "w");
    	fwrite($fd, $xml);
    	fclose($fd);
    ?>
     
  4. passion
    passion WRInaute accro
    Inscrit:
    6 Janvier 2006
    Messages:
    3 924
    J'aime reçus:
    191
    il y a encore beaucoup plus simple de générer un fichier XML à la volée!

    Tu crées une page PHP effectivement ou tu lui notifies:
    1- un header en text/xml pour qu'il reconnaisse le format du langage généré.

    2- Tu développes effectivement une simple chaine de caractères reprenant l'entête basique de la synthaxe XML (comme montré dans le post précédent)

    3- développement du corps de ton fichier via mysql par exemple en terminant par une chaine de caractères comprenant les balises fermantes du fichier XML

    4- Tu crées une ligne de réécritures sur ton fichier htaccess pour transformer ton extension".php" en ".xml" voilà.... grosso modo !

    Voilà à l'appel de ta page fluxXml.php en --> fluxXml.xml (tu auras un beau fichier généré XML)
     
  5. zeb
    zeb WRInaute accro
    Inscrit:
    5 Décembre 2004
    Messages:
    12 021
    J'aime reçus:
    1
    Bien vue, dommage que j'ai pas accès a la réécriture d'url car cela m'éviterais le passage obligé par la régénération du xml
     
  6. darkjukka
    darkjukka WRInaute impliqué
    Inscrit:
    28 Avril 2007
    Messages:
    574
    J'aime reçus:
    0
    en même temps un flux rss qui a php pour extension c'est pas bien genant non plus ;)
     
  7. zeb
    zeb WRInaute accro
    Inscrit:
    5 Décembre 2004
    Messages:
    12 021
    J'aime reçus:
    1
    Du coup j'ai inclus le générateur dans les scripts de gestion des news et du coup je me casse plus la nénette a mettre a jour :D
    Quoi de plus fainéant qu'un informaticien !!!
     
  8. darkjukka
    darkjukka WRInaute impliqué
    Inscrit:
    28 Avril 2007
    Messages:
    574
    J'aime reçus:
    0
    Ah ben le flux rss de mon site est pareil, un fichier php qui va chercher les 10 derniers enregistrements des news de ma base et qui les affichent.

    Sauf que je peux le réécrire en xml ^^
     
Chargement...
Similar Threads - XML RSS PHP Forum Date
Problème XML / RSS généré en PHP Développement d'un site Web ou d'une appli mobile 2 Juin 2006
Probleme fichiers xml et flux rss s'affichent bizarrement Développement d'un site Web ou d'une appli mobile 16 Janvier 2011
Flux XML / RSS Développement d'un site Web ou d'une appli mobile 16 Novembre 2010
XML & Parseur magpierss : Remplacement d'apostrophe par des points d'interrogation Administration d'un site Web 23 Septembre 2009
Comment désindexer un flux rss (le flux xml) ? Crawl et indexation Google, sitemaps 6 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
Page xml de mon flux rss indexée Crawl et indexation Google, sitemaps 4 Juin 2008
Votre avis sur un générateur de flux rss et sitemap xml Développement d'un site Web ou d'une appli mobile 19 Février 2008
Flux rss htm xml ? quel est le meilleur langage ? Développement d'un site Web ou d'une appli mobile 20 Août 2007
Integrer un xml sur une page pour un flux RSS Développement d'un site Web ou d'une appli mobile 26 Juin 2007
Installation RSS et Xml Administration d'un site Web 22 Octobre 2006
Création de flux RSS - Fichier XML invalide Développement d'un site Web ou d'une appli mobile 19 Octobre 2006
Balise <LINK type="application/rss+xml" . Crawl et indexation Google, sitemaps 14 Septembre 2006
Annuaire rss, xml, podcast avec lecture en ligne Annuaires et moteurs 31 Août 2006
[resolu]Creer et personnaliser facilement un logo RSS,XML. Développement d'un site Web ou d'une appli mobile 23 Juin 2006
Flux RSS 2.0 et erreur XML Administration d'un site Web 30 Avril 2006
Créer son propre flux rss ou xml ? Problèmes de référencement spécifiques à vos sites 21 Décembre 2005
Novice XML & RSS ! Développement d'un site Web ou d'une appli mobile 28 Septembre 2005
Rss rdf ou xml Crawl et indexation Google, sitemaps 17 Septembre 2004
Utilisation de flux RSS ou XML pour le référencement Référencement Google 30 Juillet 2004