| Auteur |
Message |
|
|
darkreal PentiumII-233


Inscrit le: 14 Mar 2006 Messages: 478 Localisation: A la fois Mars et Hyrule
|
Posté le: Jeu Juin 28, 2007 11:35 am Sujet du message: integrer un xml sur une page pour un flux RSS 2 |
|
|
Bonjour,
Suite de ce post, pour y voir plus clair.
Bonjour,
Je débute en RSS et XML alors désolé d'avance, j'espère m'améliorer grâce à vous.
Voilà, j'ai créer un fichier xml et xslt. Le xml est bien lisible lorsque je l'appel.
J'aimerais incorporer ce xml dans une page de mon site.
Pour cela j'ai fais en PHP :
| Code: |
<?php require_once($_SERVER['DOCUMENT_ROOT'].'/monfichierxml.xml') ?>
|
J'y accède mais malheuresement j'ai une erreur :
| Citation: |
Parse error: parse error in f:\monsite\monfichierxml.xml on line 1
|
Voici les premières lignes de monfichierxml.xml
| Code: |
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="updates.xslt" ?>
<rss version="2.0">
<channel>
...
|
Voilà, j'espère que vous m'aiderez à comprendre mon problème qui doit être suremment très simple à résoudre....
Cordialement. |
|
| Revenir en haut |
|
GerGalP Modérateur


Inscrit le: 15 Fév 2005 Messages: 1949 Localisation: Lyon, France
|
Posté le: Jeu Juin 28, 2007 11:54 am Sujet du message: |
|
|
c'est dans le fichier php.ini (config de php)
mets le paramètre short_open_tag à off
voilà, stout  |
|
| Revenir en haut |
|
darkreal PentiumII-233


Inscrit le: 14 Mar 2006 Messages: 478 Localisation: A la fois Mars et Hyrule
|
Posté le: Ven Juin 29, 2007 5:00 pm Sujet du message: |
|
|
sauf que je programme depuis free.fr, je n'ai pas accès à la configuration du serveur...
Donc doit forcément y avoir une manip quelque part.... |
|
| Revenir en haut |
|
GerGalP Modérateur


Inscrit le: 15 Fév 2005 Messages: 1949 Localisation: Lyon, France
|
Posté le: Sam Juin 30, 2007 1:07 pm Sujet du message: |
|
|
sinon, tu peux utiliser des trucs du genre :
| Code: |
// exécuter un script contenu dans du xml :
eval(file_get_contents($_SERVER['DOCUMENT_ROOT'] . '/monfichierxml.xml'));
// ou afficher le contenu d'un xml
echo file_get_contents($_SERVER['DOCUMENT_ROOT'] . '/monfichierxml.xml');
|
c'est plus propre que le require ou l'include pour la 2e solution |
|
| Revenir en haut |
|
darkreal PentiumII-233


Inscrit le: 14 Mar 2006 Messages: 478 Localisation: A la fois Mars et Hyrule
|
Posté le: Dim Juil 01, 2007 11:32 am Sujet du message: |
|
|
Pour la solution 1 j'ai l'erreur :
| Citation: |
Parse error: syntax error, unexpected '<' in E:\monsite\index.php(39) : eval()'d code on line 1
|
Pour la solution 2, j'ai du texte brut qui s'affiche et qui ne prend pas en compte mon updates.xslt
Ou est le souci ? |
|
| Revenir en haut |
|
GerGalP Modérateur


Inscrit le: 15 Fév 2005 Messages: 1949 Localisation: Lyon, France
|
Posté le: Dim Juil 01, 2007 1:01 pm Sujet du message: |
|
|
pour la solution 1, j'ai lu un peu plus en détails la doc, je crois que ca devrait marcher avec ca :
| Code: | | eval(' ?>' . file_get_contents($_SERVER['DOCUMENT_ROOT'] . '/monfichierxml.xml') . '<?php '); |
pour la solution2, c'est que tu n'as pas spécifié le bon type mime au client, il faut lui spécifier le type text/xml ou un de ses dérivés :
| Code: | | header('Content-Type: text/xml'); |
la fonction header() doit être appelée en tout début de script
pour la doc d'eval() : http://fr2.php.net/manual/fr/function.eval.php |
|
| Revenir en haut |
|
darkreal PentiumII-233


Inscrit le: 14 Mar 2006 Messages: 478 Localisation: A la fois Mars et Hyrule
|
Posté le: Lun Juil 02, 2007 11:35 am Sujet du message: |
|
|
La solution 1 fonctionne mieux mais elle donne le même résultat que la solution 2 (texte brut)
C'est le même problème que la solution 2 je supose, mais je ne comprends pas ou il faut placer ce
| Code: |
header('Content-Type: text/xml');
|
?
Merci |
|
| Revenir en haut |
|
GerGalP Modérateur


Inscrit le: 15 Fév 2005 Messages: 1949 Localisation: Lyon, France
|
Posté le: Lun Juil 02, 2007 12:44 pm Sujet du message: |
|
|
la fonction header() permet de modifier les options contenues dans l'en-tête de la réponse HTTP.
le HTTP est un protocole en mode texte, tout est envoyé à la suite et lisible par un humain (en-têtes comme données). seulement, l'en-tête (comme son nom l'indique) doit être envoyé en premier, c'est pourquoi tu dois appeler la fonction header() avant que tu n'envoies le premier octet au client, qu'il provienne d'un echo ou d'un espace avant le premier <?php
pour comprendre plus en détails ce qu'il se passe, tu peux utiliser telnet : tu peux par exemple télécharger la page de garde de google et voir comment ca se passe.
avec une ligne de commandes windows, démarres telnet :
puis, tapes
(n'oublies pas le double retour à la ligne à la fin)
le serveur te répondra(en simplifiant) :
| Code: |
HTTP/1.1 200 OK
Content-Type: text/html
<html>
<head>[[contenu de la page...]]
|
|
|
| Revenir en haut |
|
|
|
|