[php] pbl ouverture fichier distant ac fopen

Résolu/Fermé
28_seb Messages postés 84 Date d'inscription dimanche 22 octobre 2006 Statut Membre Dernière intervention 31 mai 2010 - 30 avril 2009 à 14:53
28_seb Messages postés 84 Date d'inscription dimanche 22 octobre 2006 Statut Membre Dernière intervention 31 mai 2010 - 4 mai 2009 à 09:58
Bonjour,

J'essaie de récupérer un fichier xml sur un site distant avec la fonction fopen mais ca ne marche pas !
J'ai le message d'erreur que j'ai créé dans mon code qui est "Impossible d'ouvrir le fichier XML".

En local tout fonctionne bien !

j'ai regardé la variable 'allow_url_fopen' dans php.ini, elle est a ON, je ne comprends pas d'où peut venir le problème.

Merci pour votre aide.

Seb

Ma conf :

PHP 5.2.6
Apache 2.0 Handler
Fedora

Mon code :(il est correct car je l'ai testé sur un autre serveur et cela fonctionne)

<?php
$fichier = "https://www.leparisien.fr/";

//$fichier = "fluxrss.rss";

// Ma propre fonction de traitement du texte
// qui est appelée par le "parseur"
function fonctionTexte($parseur, $texte)
{
// Dans l'immédiat nous nous contentons d'afficher
// le texte brut accompagné d'un simple retour à la ligne
echo $texte."<br/>";
}

// Création du parseur XML
$parseurXML = xml_parser_create();

// Je précise le nom de la fonction a appeler
// lorsque du texte est rencontré
xml_set_character_data_handler($parseurXML, "fonctionTexte");

// Ouverture du fichier
$fp = fopen($fichier, "r");
if (!$fp) die("Impossible d'ouvrir le fichier XML");

// Lecture ligne par ligne
while ( $ligneXML = fgets($fp, 1024)) {
// Analyse de la ligne
// REM: feof($fp) retourne TRUE s'il s'agit de la dernière
// ligne du fichier.
xml_parse($parseurXML, $ligneXML, feof($fp)) or
die("Erreur XML");
}

xml_parser_free($parseurXML);
fclose($fp);
?>
A voir également:

2 réponses

Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 920
30 avril 2009 à 19:36
salut,

chez moi aussi ça passe.
en capturant l'erreur tu devrais avoir plus d'infos :
// Ouverture du fichier
try
{
	$fp = fopen($fichier, "r");
}
catch($e)
{
	print_r($e);
}
1
28_seb Messages postés 84 Date d'inscription dimanche 22 octobre 2006 Statut Membre Dernière intervention 31 mai 2010 11
4 mai 2009 à 09:58
Slt,

Merci pour ta réponse, cela fonctionne maintenant !

Le problème venait de la connexion internet qui était sur un proxy et il bloqué cette fonction.

Seb
0