Précédent   Forum du club des développeurs et IT Pro > PHP > Bibliothèques et frameworks > XML
XML Forum d'entraide sur XML avec PHP. Exemples : SimpleXML, OpenXML... Avant de poster -> FAQ XML, Cours XML et Sources XML
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 14/05/2006, 13h08   #1
gator
Candidat au titre de Membre du Club
 
Inscription : mars 2006
Messages : 89
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 89
Points : 10
Points : 10
Par défaut Génération fichier XML pour RSS via PHP, problème lors de l'écriture

bonjour,

j'ai un fichier maj-rss.php qui me génére un fichier fluxrss.xml devant affichier les 10 derniers articles de la base.

Probléme, il me génére bien le départ avec les infos, mais ne m'insére pas les dix derniers articles !

Voici le code:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<?php
$xml = '<?xml version="1.0" encoding="iso-8859-1"?><rss version="2.0">';
$xml .= '<channel>'; 
$xml .= '<title>Militaria.fr</title>';
$xml .= '<link>http://www.militaria.fr</link>';
$xml .= '<description>Achat et vente de militaria de collection </description>';
$xml .= '<copyright>© Militaria.fr</copyright>';
$xml .= '<language>fr</language>';
$xml .= '<image>';
$xml .= '    <title>Militaria.fr</title>';
$xml .= '    <url>http://www.militaria.fr/rss/rss.gif</url>';
$xml .= '    <link>http://www.Militaria.fr</link>';
$xml .= '</image>';
$jourdui= date("D, d M Y H:i:s +0100");
$xml .= '<pubdate>'.$jourdui.'</pubdate>';
 
require ('connect.php'); 
 
$res=mysql_query("select * from  kpro_shop_articles order by date desc limit 0, 10");
 
// extraction des 10 dernièrs articles
while($lig=mysql_fetch_array($res)){   
        $title=$lig[tag];
        $adresse=$lig[adresse];
        $descr=$lig[descr];
        $madate=$lig[jourdui];
        $datephp=date("D, d M Y H:i:s +0100", strtotime($madate));
 
            $xml .= '<item>';
            $xml .= '<title>'.$title.'</title>';
            $xml .= '<link>'.$adresse.'</link>';
            $xml .= '<pubDate>'.$datephp.'</pubDate>'; 
            $xml .= '<description>'.$descr.'</description>';
            $xml .= '</item>';    
    }
 
$xml .= '</channel>';
$xml .= '</rss>';
 
$fp = fopen("fluxrss.xml", 'w+');
fputs($fp, $xml);
fclose($fp);
 
echo 'Export XML effectue !<br><a href="fluxrss.xml">Voir le fichier</a>';
?>
Alors là, je patauge !

En live, cela donne :http://www.militaria.fr/rss/maj-rss.php

merci de votre aide
gator est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/05/2006, 13h14   #2
Swoög
Rédacteur
 
Avatar de Swoög
 
Inscription : janvier 2003
Messages : 6 049
Détails du profil
Informations personnelles :
Âge : 25

Informations forums :
Inscription : janvier 2003
Messages : 6 049
Points : 8 291
Points : 8 291
Envoyer un message via MSN à Swoög Envoyer un message via Skype™ à Swoög
Salut !

essaie de remplacer :
Code :
$res=mysql_query("select * from  kpro_shop_articles order by date desc limit 0, 10");
par
Code :
$res=mysql_query("select * from  kpro_shop_articles order by date desc limit 0, 10") or die(mysql_error());
et fait un
Code :
echo mysql_num_rows($res);
avant le while
__________________
Rédacteur "éclectique" (XML, IRC, Web...)
Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
pensez à la balise [code] (bouton #) et au tag (en bas)
Swoög est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/05/2006, 13h27   #3
gator
Candidat au titre de Membre du Club
 
Inscription : mars 2006
Messages : 89
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 89
Points : 10
Points : 10
Par défaut c'est presque cela !

merci et bien vu, j'ai mis ton code et seulement j'ai classé par descr ( description )
Il me cause une erreur mais si je récupré le fichier xml généré, j'ai déla les artiocles dedans;

Voici le code modifié :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<?php
$xml = '<?xml version="1.0" encoding="iso-8859-1"?><rss version="2.0">';
$xml .= '<channel>'; 
$xml .= '<title>Militaria.fr</title>';
$xml .= '<link>http://www.militaria.fr</link>';
$xml .= '<description>Achat et vente de militaria de collection </description>';
$xml .= '<copyright>© Militaria.fr</copyright>';
$xml .= '<language>fr</language>';
$xml .= '<image>';
$xml .= '    <title>Militaria.fr</title>';
$xml .= '    <url>http://www.militaria.fr/rss/rss.gif</url>';
$xml .= '    <link>http://www.Militaria.fr</link>';
$xml .= '</image>';
$jourdui= date("D, d M Y H:i:s +0100");
$xml .= '<pubdate>'.$jourdui.'</pubdate>';
 
require ('connect.php'); 
 
$res=mysql_query("select * from  kpro_shop_articles order by  descr desc limit 0, 10") or die(mysql_error());
echo mysql_num_rows($res);
// extraction des 10 dernièrs articles
while($lig=mysql_fetch_array($res)){   
        $title=$lig[tag];
        $adresse=$lig[adresse];
        $descr=$lig[descr];
        $madate=$lig[jourdui];
        $datephp=date("D, d M Y H:i:s +0100", strtotime($madate));
 
            $xml .= '<item>';
            $xml .= '<title>'.$title.'</title>';
            $xml .= '<link>'.$adresse.'</link>';
            $xml .= '<pubDate>'.$datephp.'</pubDate>'; 
            $xml .= '<description>'.$descr.'</description>';
            $xml .= '</item>';    
    }
 
$xml .= '</channel>';
$xml .= '</rss>';
 
$fp = fopen("fluxrss.xml", 'w+');
fputs($fp, $xml);
fclose($fp);
 
echo 'Export XML effectue !<br><a href="fluxrss.xml">Voir le fichier</a>';
?>

Voici le lien de l'erreur http://www.militaria.fr/rss/maj-rss.php
et voici le fichier xml

Code :
<?xml version="1.0" encoding="iso-8859-1"?><rss version="2.0"><channel><title>Militaria.fr</title><link>http://www.militaria.fr</link><description>Achat et vente de militaria de collection </description><copyright>© Militaria.fr</copyright><language>fr</language><image>    <title>Militaria.fr</title>    <url>http://www.militaria.fr/rss/rss.gif</url>    <link>http://www.Militaria.fr</link></image><pubdate>Sun, 14 May 2006 13:18:56 +0100</pubdate><item><title></title><link>www.militaria.fr</link><pubDate>Sun, 14 May 2006 00:00:00 +0100</pubDate><description><p>Tr&eacute;s bon &eacute;tat (Voir photos).</p></description></item><item><title></title><link>www.militaria.fr</link><pubDate>Sun, 14 May 2006 00:00:00 +0100</pubDate><description>Soupi&egrave;re du D.A.F, bien marqu&eacute;e "MODELL DES AMTES - SCHONHEIT DER ARBEIT" - "BAUSCHER WEIDEN", diam&egrave;tre 25cm, porcelaine intacte, pas f&eacute;l&eacute;e ni &eacute;br&eacute;ch&eacute;e, tr&egrave;s bon &eacute;tat...(svastika (Croix gam&eacute;e), rendue &nbsp;floue pour pr&eacute;server la sensibilit&eacute; de chacun, mais intacte).</description></item><item><title></title><link>www.militaria.fr</link><pubDate>Sun, 14 May 2006 00:00:00 +0100</pubDate><description>Plaque 1er type, reste d'&eacute;tiquette papier&nbsp; dat&eacute;e 1880, tr&eacute;s bon &eacute;tat.</description></item><item><title></title><link>www.militaria.fr</link><pubDate>Sun, 14 May 2006 00:00:00 +0100</pubDate><description>Bon &eacute;tat, taille 56.</description></item><item><title></title><link>www.militaria.fr</link><pubDate>Sun, 14 May 2006 00:00:00 +0100</pubDate><description>Bon &eacute;tat (Voir photos).</description></item><item><title></title><link>www.militaria.fr</link><pubDate>Sun, 14 May 2006 00:00:00 +0100</pubDate><description>Sauci&egrave;re&nbsp;du D.A.F, bien marqu&eacute;e "MODELL DES AMTES - SCHONHEIT DER ARBEIT" - "Rosenthal", &nbsp;porcelaine intacte, pas f&eacute;l&eacute;e ni &eacute;br&eacute;ch&eacute;e, tr&egrave;s bon &eacute;tat...(svastika (Croix gam&eacute;e), rendue &nbsp;floue pour pr&eacute;server la sensibilit&eacute; de chacun, mais intacte).</description></item><item><title></title><link>www.militaria.fr</link><pubDate>Sun, 14 May 2006 00:00:00 +0100</pubDate><description><p>Avec sa bretelle, sac avec marquage encore visible, idem sur bretelle, manque un bouton, sinon tr&eacute;s bon &eacute;tat.</p></description></item><item><title></title><link>www.militaria.fr</link><pubDate>Sun, 14 May 2006 00:00:00 +0100</pubDate><description>Rasoir US, 2&egrave;me guerre, "Safety Rasor", de marque GILLETTE, dans sa boite, tr&eacute;s tr&eacute;s bon &eacute;tat.</description></item><item><title></title><link>www.militaria.fr</link><pubDate>Sun, 14 May 2006 00:00:00 +0100</pubDate><description>Bon &eacute;tat.</description></item><item><title></title><link>www.militaria.fr</link><pubDate>Sun, 14 May 2006 00:00:00 +0100</pubDate><description>Poste de radio Allemand "Deutscher Kleinempf&auml;nger", 2&egrave;me guerre, petit mod&egrave;le (24cm X 24cm X 12cm), en bak&eacute;lite, &eacute;ssai de fonctionnement non r&eacute;alis&eacute;, bon &eacute;tat de conservation.</description></item></channel></rss>

Il doit y avoir une petite erreur, mais la je séche, snif !


et
gator est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/05/2006, 13h32   #4
Swoög
Rédacteur
 
Avatar de Swoög
 
Inscription : janvier 2003
Messages : 6 049
Détails du profil
Informations personnelles :
Âge : 25

Informations forums :
Inscription : janvier 2003
Messages : 6 049
Points : 8 291
Points : 8 291
Envoyer un message via MSN à Swoög Envoyer un message via Skype™ à Swoög
Salut !

C'est parce que tu utilises des entitées HTML (j'ai d'ailleurs un peu de mal à voir comment elles arrivent là puisque tu n'utilises ni htmlentities ni htmlspecialchars...

enfin... pour toutes les balises qui contiennent du texte qui ne doit pas être interprété (des bouts de HTML quoi) utilise :
Code :
<balise><![CDATA[ {LE TEXTE} ]]></balise>
ça devrait suffire

je te conseillerais de le mettre sur les balises title, description, pubDate et copyright

et ajoute des retours à la ligne dans ton fichier...
__________________
Rédacteur "éclectique" (XML, IRC, Web...)
Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
pensez à la balise [code] (bouton #) et au tag (en bas)
Swoög est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/05/2006, 13h38   #5
gator
Candidat au titre de Membre du Club
 
Inscription : mars 2006
Messages : 89
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 89
Points : 10
Points : 10
Par défaut ouh la

merci pour ton aide.

Excuse mon ignorance :

$xml .= '<title>'<![CDATA[ {$title} ]]>'</title>';

Est cela ?
gator est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/05/2006, 13h39   #6
Swoög
Rédacteur
 
Avatar de Swoög
 
Inscription : janvier 2003
Messages : 6 049
Détails du profil
Informations personnelles :
Âge : 25

Informations forums :
Inscription : janvier 2003
Messages : 6 049
Points : 8 291
Points : 8 291
Envoyer un message via MSN à Swoög Envoyer un message via Skype™ à Swoög
presque
Code :
$xml .= '<title><![CDATA['.$title.']]></title>';
__________________
Rédacteur "éclectique" (XML, IRC, Web...)
Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
pensez à la balise [code] (bouton #) et au tag (en bas)
Swoög est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/05/2006, 13h59   #7
gator
Candidat au titre de Membre du Club
 
Inscription : mars 2006
Messages : 89
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 89
Points : 10
Points : 10
Par défaut super !

Excellent, je te remercie, il me reste un seul probléme, il ne me ressort pas la variables la variable title , tout le rest est ok

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<?php
$xml = '<?xml version="1.0" encoding="iso-8859-1"?><rss version="2.0">';
$xml .= '<channel>'; 
$xml .= '<title>Militaria.fr</title>';
$xml .= '<link>http://www.militaria.fr</link>';
$xml .= '<description>Achat et vente de militaria de collection </description>';
$xml .= '<copyright>© Militaria.fr</copyright>';
$xml .= '<language>fr</language>';
$xml .= '<image>';
$xml .= '    <title>Militaria.fr</title>';
$xml .= '    <url>http://www.militaria.fr/rss/rss.gif</url>';
$xml .= '    <link>http://www.Militaria.fr</link>';
$xml .= '</image>';
$jourdui= date("D, d M Y H:i:s +0100");
$xml .= '<pubdate>'.$jourdui.'</pubdate>';
 
require ('connect.php'); 
 
$res=mysql_query("select * from  kpro_shop_articles order by  id desc limit 0, 10") or die(mysql_error());
echo mysql_num_rows($res);
// extraction des 10 dernièrs articles
while($lig=mysql_fetch_array($res)){   
        $title=$lig[tag];
        $adresse=$lig[adresse];
        $descr=$lig[descr];
        $madate=$lig[jourdui];
        $datephp=date("D, d M Y H:i:s +0100", strtotime($madate));
 
            $xml .= '<item>';
            $xml .= '<title><![CDATA['.$title.']]></title>';
            $xml .= '<link>'.$adresse.'</link>';
            $xml .= '<pubDate><![CDATA['.$datephp.']]></pubDate>'; 
            $xml .= '<description><![CDATA['.$descr.']]></description>';
            $xml .= '</item>';    
    }
 
$xml .= '</channel>';
$xml .= '</rss>';
 
$fp = fopen("fluxrss.xml", 'w+');
fputs($fp, $xml);
fclose($fp);
 
echo 'Export XML effectue !<br><a href="fluxrss.xml">Voir le fichier</a>';
?>

Sinon, tout est bon, trop cool

merci merci !
gator est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/05/2006, 14h08   #8
gator
Candidat au titre de Membre du Club
 
Inscription : mars 2006
Messages : 89
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 89
Points : 10
Points : 10
Par défaut RAS Tout est OK

Salut,

tout est ok, j'avais fais une co--lle dans le potage !

encore merci pour ton savoir,

Bon aprés midi ,

Alex
gator est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/01/2011, 12h07   #9
ooopsinet
Invité de passage
 
Inscription : janvier 2011
Messages : 3
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 3
Points : 1
Points : 1
Ancien post que je remonte

J'ai le même code mais je voudrais arriver :
à faire un query sur une limitation de 10 (jusque la pas de problème)
Et que le soit regroupé en un seul et même item (les 10) dans le Cdata.

Je m'arrache les cheveux avec la boucle
Merci et à bientot
ooopsinet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/02/2012, 17h41   #10
DoumCSS
Invité régulier
 
Homme
Inscription : décembre 2011
Messages : 40
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Canada

Informations forums :
Inscription : décembre 2011
Messages : 40
Points : 5
Points : 5
Par défaut Problème XML

J'ai bien réussi à écrire dans mon fichier xml mais par contre, lors de l'ouverture du fichier, je ne vois pas mes 10 nouvelles... Je ne vois que la derniere que j'ai mise, de même que 2 autres vieilles nouvelles qui ne sont meme pas dans ma bdd. J'ai pourtant fait la requete pour les 10 dernieres...

C'est bizarre non?
DoumCSS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/02/2012, 18h17   #11
DoumCSS
Invité régulier
 
Homme
Inscription : décembre 2011
Messages : 40
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Canada

Informations forums :
Inscription : décembre 2011
Messages : 40
Points : 5
Points : 5
Citation:
Envoyé par DoumCSS Voir le message
J'ai bien réussi à écrire dans mon fichier xml mais par contre, lors de l'ouverture du fichier, je ne vois pas mes 10 nouvelles... Je ne vois que la derniere que j'ai mise, de même que 2 autres vieilles nouvelles qui ne sont meme pas dans ma bdd. J'ai pourtant fait la requete pour les 10 dernieres...

C'est bizarre non?
Bon ok, on oublie ca; IE enregistre le flux, lorsqu'abonné mais lorsqu'on retourne sur ce même flux, on voit la vieille version...
Bref, pas un problème de coding... :/ [ Résolu]
lol
DoumCSS est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 10h47.


 
 
 
 
Partenaires

Hébergement Web