Précédent   Forum des professionnels en informatique > 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 Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 12/05/2008, 00h40   #1
Membre à l'essai
 
Inscription : juin 2006
Messages : 100
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 100
Points : 21
Points : 21
Par défaut Création d'un flux RSS à partir des données en base

Bonsoir,

J'essaie de créer un flux rss, a partir d'une base de donneé SQL, voila l'erreur que j'ai

Citation:
Erreur d'analyse XML : mal formé
Emplacement : http://champ.lan.free.fr/fluxrss.xml
Numéro de ligne 1, Colonne 4 : <?
---^
et voici ce que j'ai fais
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
46
47
48
49
<?php                                                       
require("admin/conf.php");
$serveur="$host";
$utilisateur="$user";
$motdepasse="$mdp";
$database="$user";
 
mysql_connect($serveur,$utilisateur,$motdepasse) or die();
mysql_select_db($database);
 
$query = "SELECT * FROM br_news ORDER BY id DESC";
$result = mysql_query ($query) or die(.mysql_error());
 
Header("content-type: text/xml");
 
$xml = '<'.'?xml version="1.0" encoding="UTF-8"?'.'><rss version="2.0"><channel>';
 
$xml .='<title>Champ-Lan flux RSS</title>';
 
while ($msg_data = mysql_fetch_array($result))
{
$id = $msg_data['id'];
 
$titre = $msg_data['titre']." - Nouvelle Du Site";
$news = stripslashes(trim($msg_data['news']));
$news = str_replace("<BR>",'<BR/>',$news);
$news = str_replace("&",'&amp;',$news);
$news = str_replace("<","&lt;",$news);
$news = str_replace(">","&gt;",$news);
 
$xml .='<item>';
$xml .='<title>'.$titre.'</title>';
$xml .='<link>http://champ.lan.free.fr/news.php?id='.$id.'</link>';
$xml .='<pubDate>'.$msg_data['timestamp'].' GMT</pubDate>';
$xml .='<guid>http://champ.lan.free.fr/news.php?id='.$id.'</guid>';
$xml .='<description>';
 
$xml .= $news; 
 
$xml .='</description></item>';
}
 
mysql_close();
 
$xml .='</channel></rss>';
 
echo $xml;
 
?>
Merci de votre aide
Misoss est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/05/2008, 09h36   #2
Membre émérite
 
Inscription : décembre 2003
Messages : 782
Détails du profil
Informations forums :
Inscription : décembre 2003
Messages : 782
Points : 821
Points : 821
je ne connais pas de php mais un truc bizarre quand je vais sur http://champ.lan.free.fr/fluxrss.xml et que je demande le code source il me donne le code source php et non unn fichier xml.
je pense donc qu'il ya une erreur au niveau de l'echo
fraoustin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/05/2008, 14h52   #3
Modératrice
 
Avatar de Celira
 
Femme
Développeuse PHP/Java
Inscription : avril 2007
Messages : 3 686
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Développeuse PHP/Java

Informations forums :
Inscription : avril 2007
Messages : 3 686
Points : 5 453
Points : 5 453
Bonjour

Tu ne peux pas transformer un fichier php en fichier xml simplement en changeant l'extension. Ce que tu essayes de faire, c'est générer le fichier xml à partir d'une page php, c'est ça ?

Il faut donc que tu crée le fichier xml d'arrivée et que tu le remplisse. Un simple echo ne tranformera pas ton script php en fichier xml pour autant que je sache...

PHP > fichiers et dossiers
__________________
Modératrice PHP
Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)

Pour afficher votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur)
Celira est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/05/2008, 13h40   #4
Membre à l'essai
 
Inscription : juin 2006
Messages : 100
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 100
Points : 21
Points : 21
en faite ce que j'aimerais c'est pouvoir récupéré ma table SQL via le XML pour faire un flux RSS
Misoss est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/06/2008, 21h09   #5
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
Vous avez la réponse plus haut : votre script n'est pas interprété ! Soit vous changez son extension (.xml => .php(5)) soit vous vous arrangez pour qu'il le devienne en l'état (mais chez Free inutile d'y compter).
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/06/2008, 03h27   #6
Membre à l'essai
 
Inscription : juin 2006
Messages : 100
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 100
Points : 21
Points : 21
Citation:
Envoyé par julp Voir le message
vous vous arrangez pour qu'il le devienne en l'état (mais chez Free inutile d'y compter).
c'est à dire?
Misoss est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/06/2008, 13h46   #7
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
Chez Free, PHP est utilisé en tant que CGI : configuration exacte, de fait, inconnue.

Il aurait été utilisé comme module Apache, ça aurait été grandement plus simple :
Code X :
1
2
3
<Files "toto.xml">
    AddType application/x-httpd-php .xml
</Files>
(le fichier, précis, ici, toto.xml sera alors traité par l'interpréteur PHP)
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/06/2008, 19h22   #8
Membre à l'essai
 
Inscription : juin 2006
Messages : 100
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 100
Points : 21
Points : 21
et on peut pas faire l'inverse, interprété du php en xml ?

Citation:
<Files "toto.php">
AddType application/x-httpd-xml .php
</Files>
Misoss est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/06/2008, 19h33   #9
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
Parce que du code PHP non interprété aurait un sens dans tout autre contexte ? Par contre, les informations figurant dans la barre d'adresse (je pense notamment à l'extension du script qui serait .php par exemple) ne joue nullement ici : vous envoyez l'entête text/xml au client donc le navigateur (pour prendre cet exemple) traitera ce qu'il reçoit du serveur (après interprétation - correcte - du code PHP donc) comme du XML et non comme de l'HTML ou autre.
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/06/2008, 13h39   #10
Membre à l'essai
 
Inscription : juin 2006
Messages : 100
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 100
Points : 21
Points : 21
donc si j'ai bien compris a partir du moment ou je met "text/xml" entête de ma page peut importe l'extension du document ?
Misoss est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/06/2008, 14h01   #11
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
Oui, on peut très bien générer, dynamiquement, sur le même principe, des images ou d'autres types de document (du PDF par exemple) à l'aide de PHP. Cet entête, émis, guidera le client (pas nécessairement un navigateur) à en reconnaître son type par rapport au contenu réel de la ressource, c'est à lui seul de gérer ensuite cette information.

(il existe d'autres valeurs pour du contenu de type XML, comme application/xhtml+xml pour ce genre de flux. Notez aussi la présence de cours ici-même relatifs à ce sujet.)
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/06/2008, 15h28   #12
Membre à l'essai
 
Inscription : juin 2006
Messages : 100
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 100
Points : 21
Points : 21
donc ceci n'est pas bon ?

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
<?xml version="1.0" encoding="ISO-8859-15" ?>
<rss version="2.0">
 
<?php include("header.php");  ?>
 
<?php
           mysql_connect("$host", "$user", "$mdp");
           mysql_select_db("$user");     
$reponse = mysql_query("SELECT * FROM br_flan ORDER BY id DESC") or die (mysql_error());
 
 
while($donnees = mysql_fetch_array($reponse))
{ 
?>
 
<item>
  <title><?php echo $donnees['titre']; ?></title>
  <link href="news.php?id=<?php echo $donnees['id'] ?>"><?php echo $donnees['titre']; ?></link>
  <pubDate><?php echo date('d/m/Y à H\hi', $donnees['timestamp']); ?></pubDate>
  <description><?php echo $donnees['news']; ?></description>
 
</item>
 
</rss>
<?php
}
mysql_close(); 
?>
 
<?php include("footer.php");  ?>
Misoss est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/06/2008, 17h20   #13
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
A vous de nous le dire ?

Le PHP est bien interprété cette fois ? Qu'obtenez-vous ? Mais, pour bien faire, il manque un entête pour indiquer le type approprié : PHP envoyant, normalement et par défaut text/html Il n'y a, quant au RSS 2.0, aucune recommandation à ce niveau en fait, donc vous pouvez spécifier text/xml (par un appel à la fonction header en tout début de script, entre autres). Sans (comme avec, me direz-vous), ça dépendra de chaque client ...
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/06/2008, 20h00   #14
Membre à l'essai
 
Inscription : juin 2006
Messages : 100
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 100
Points : 21
Points : 21
sa me fais une erreur au niveau du php

http://champ.lan.free.fr/rss.xml comme vous pouvez le voir sur cette page ^^

http://champ.lan.free.fr/rss.txt et voici le code de la page


je ne vois pas pourquoi sa marche pas :/
Misoss est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/07/2008, 17h03   #15
Membre du Club
 
Inscription : août 2003
Messages : 49
Détails du profil
Informations forums :
Inscription : août 2003
Messages : 49
Points : 50
Points : 50
Bonjour,

Tu n'as pas completement compris ce qui as été dit plus haut...
Citation:
donc si j'ai bien compris a partir du moment ou je met "text/xml" entête de ma page peut importe l'extension du document ?
C'est à peu prêt ça. sauf que chez Free, seul les fichiers avec l'extension "*.php" seront interprètés comme tels.

Tu devrais essayer de reprendre ta 1ere source et de changer l'extension en .php

ça devrait fonctionner.

Cdt...
Snowboarder69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h25.


 
 
 
 
Partenaires

Hébergement Web