récupérer fichier xml par http

Invité
Invité n'ayant pas de compte PHPfrance

18 mai 2009, 12:35

Bonjour à tous,

J'ai un fichier php qui renvoie des données xml.
Je crée un lien html vers le fichier php, comme ceci:
 <a href="http://localhost/generateur_xml.php?param1=toto&param2=tutu">voir le fichier xml</a>
Le lien marche bien et m'affiche un fichier xml dans le navigateur.
Mon problème: comment faire pour récupérer ce fichier xml dans une variable php aulieu de l'avoir directement dans le navigateur?

Merci pour vos réponses.

Eléphant du PHP | 94 Messages

18 mai 2009, 12:38

$xml = file_get_contents( "http://localhost/generateur_xml.php?param1=toto&param2=tutu" );

Invité
Invité n'ayant pas de compte PHPfrance

18 mai 2009, 13:05

apriori ça ne marche pas pour moi.
j'ai l'erreur
Warning: file_get_contents() [function.file-get-contents]: php_network_getaddresses: getaddrinfo failed: Hôte inconnu. in

Warning: file_get_contents() failed to open stream: No error in...
Si j'ai bien compris, file get contents ne trouve pas le fichier alors que je l'ai sous les yeux quand je clique sur le même lien dans mon navigateur...

Eléphant du PHP | 94 Messages

18 mai 2009, 13:16

J'avoue que je sèche un peu :roll:.
Parce qu'un file_get_contents sur un fichier php, j'ai dit une connerie, ça renvoie le code php non interprété, à moins que tu passes par une requete HTTP à condition d'avoir Allow URL Fopen sur On.

Il faudrait que tui essaies depuis cURL.
Modifié en dernier par geoffroy le 18 mai 2009, 13:39, modifié 1 fois.

Mammouth du PHP | 991 Messages

18 mai 2009, 13:39

il faudrait que tu regardes au niveau du php.ini

que : allow_url_fopen (quelques choses dans ce genre) soit a on

BOnne journée Hawk
DevOps, Symfony4, Hoa

Invité
Invité n'ayant pas de compte PHPfrance

18 mai 2009, 13:44

dans mon php.ini, il y a:
allow_url_fopen = On

Eléphant du PHP | 94 Messages

18 mai 2009, 13:45

merci thehawk,
je m'emmelais les pinceaux là
j'éditais en même temps pour corriger mes conneries :roll: .


Donc, en gros, si tu ne peux pas modifier ton php.ini,
tu peux passer par les fonctions curl.
Voilà, c'est plus clair là^^.

Eléphant du PHP | 94 Messages

18 mai 2009, 14:07

Je ne comprends pas ...
Il va falloir attendre quelqu'un de plus calé.

Tu peux nous dire si ça marche quand tu fais par exemple :
<?php
$xml = file_get_contents( "http://www.php.net/feed.atom" ); 
echo( $xml );
?>

Invité
Invité n'ayant pas de compte PHPfrance

18 mai 2009, 14:11

oui, là ça marche. mais ton lien pointe directement vers un fichier xml.
Dans mon cas, le lien pointe vers un fichier php qui retourne un fichier xml.

Mammouth du PHP | 693 Messages

18 mai 2009, 15:55

Logiquement, ca devrait rien changer. Que le fichier XML soit en dur ou généré par un script PHP, ca ne change rien ensuite, c'est un fichier XML.

Eléphant du PHP | 94 Messages

18 mai 2009, 16:06

Il a une erreur bizarre quand même ..
Et avec ça tu obtiens quoi :

Code : Tout sélectionner

<?php $nom_fichier = "http://localhost/generateur_xml.php?param1=toto&param2=tutu"; $fichier = fopen($nom_fichier, "r"); $xml = fread($fichier, 100000); fclose($fichier); echo $xml; ?>