Php : fopen et erreur
Résolu
elacsap
Messages postés
13
Date d'inscription
Statut
Membre
Dernière intervention
-
trokiki -
trokiki -
Bonjour,
Je souhaite afficher divers fichiers xml sur une même page web. Jusqeu là tout va bien... si ce n'est que je n'arrive pas à ouvrir mon fichier avec la fonction fopen...J'ai essayé d'ouvrir plusieurs fichiers, mais ça bloque...
J'ai même repris le code de base proposé sur le site :
Ben rien à faire, ça me renvoie toujours le même message d'erreur :
Est-ce que quelqu'un peut m'aider ? D'avance merci...
Je souhaite afficher divers fichiers xml sur une même page web. Jusqeu là tout va bien... si ce n'est que je n'arrive pas à ouvrir mon fichier avec la fonction fopen...J'ai essayé d'ouvrir plusieurs fichiers, mais ça bloque...
J'ai même repris le code de base proposé sur le site :
<? $fp = fopen("http://www.commentcamarche.net","r"); //lecture du fichier while (!feof($fp)) { //on parcourt toutes les lignes $page .= fgets($fp, 4096); // lecture du contenu de la ligne } ?>
Ben rien à faire, ça me renvoie toujours le même message d'erreur :
Warning: fopen(http://www.commentcamarche.net): failed to open stream: Bad file descriptor in c:\program files\easyphp1-8\www\test.php on line 3 Fatal error: Maximum execution time of 30 seconds exceeded in c:\program files\easyphp1-8\www\test.php on line 3
Est-ce que quelqu'un peut m'aider ? D'avance merci...
A voir également:
- Fopen
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Retour a la ligne php - Forum Webmastering
- Alert php - Forum PHP
- Retour a la ligne php ✓ - Forum PHP
11 réponses
Chez moi cela fonctionne
Il est probable que cela vienne de la configuration php du serveur http
http://php.easynet.be/manual/fr/function.fopen.php
<cut>
Si PHP a décidé que filename spécifie un protocole enregistré, et que ce protocole est enregistré comme un protocole réseau, PHP s'assurera que la directive allow_url_fopen est activée. Si elle est inactive, PHP va émettre une alerte et l'ouverture va échouer.
</cut>
Contacte ton administrateur , ou trouve un hébergeur permettant l'ouverture distante.
Johan
johand@horus:~/src/php$ cat fopen.php <?php $page = ''; $fp = fopen("http://www.commentcamarche.net","r"); //lecture du fichier while (!feof($fp)) { //on parcourt toutes les lignes $page .= fgets($fp, 4096); // lecture du contenu de la ligne } print($page); ?> johand@horus:~/src/php$ php fopen.php | sed -e '/^ *$/d'|head <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <META NAME="site" content="http://www.commentcamarche.net"> <META NAME="expires" content="never"> <META NAME="rating" content="general"> <META NAME="revisit-after" content="7 days"> <META NAME="ROBOTS" content="index,follow"> <META NAME="author" content="Jean-François Pillou"> <META NAME="subject" content="Comment ça marche? [L'informatique]">
Il est probable que cela vienne de la configuration php du serveur http
http://php.easynet.be/manual/fr/function.fopen.php
<cut>
Si PHP a décidé que filename spécifie un protocole enregistré, et que ce protocole est enregistré comme un protocole réseau, PHP s'assurera que la directive allow_url_fopen est activée. Si elle est inactive, PHP va émettre une alerte et l'ouverture va échouer.
</cut>
Contacte ton administrateur , ou trouve un hébergeur permettant l'ouverture distante.
Johan
D'apres le manuel PHP :
Si PHP a décidé que filename spécifie un protocole enregistré, et que ce protocole est enregistré comme un protocole réseau, PHP s'assurera que la directive allow_url_fopen est activée. Si elle est inactive, PHP va émettre une alerte et l'ouverture va échouer.
C'est une histoire de config php. Faut aller faire un petit tour dans '/etc'.
Si PHP a décidé que filename spécifie un protocole enregistré, et que ce protocole est enregistré comme un protocole réseau, PHP s'assurera que la directive allow_url_fopen est activée. Si elle est inactive, PHP va émettre une alerte et l'ouverture va échouer.
C'est une histoire de config php. Faut aller faire un petit tour dans '/etc'.
Bonjour,
Le problème vient probablement du temps que met le script php à s'exécuter.
En réalité, vous rencontrez une erreur de timeout (durée d'exécution maximale d'un script) et non une erreur liée à la mauvaise utilisation de la fonction fopen.
La solution en local : éditer le fichier httpd.conf, rechercher "timeout" (sans les guillemets), puis augmenter la valeur numérique située à droite de "timeout" qui correspond au délai en secondes avant Time out.
Cordialement,
Logan.
Le problème vient probablement du temps que met le script php à s'exécuter.
En réalité, vous rencontrez une erreur de timeout (durée d'exécution maximale d'un script) et non une erreur liée à la mauvaise utilisation de la fonction fopen.
La solution en local : éditer le fichier httpd.conf, rechercher "timeout" (sans les guillemets), puis augmenter la valeur numérique située à droite de "timeout" qui correspond au délai en secondes avant Time out.
Cordialement,
Logan.
Je viens de tester la même chose avec un fichier en local et ça fonctionne. Est-ce que ça peut venir du serveur ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
attend c'est bizarr, t'as mis :
$fp = fopen("http://www.commentcamarche.net","r"); //lecture du fichier
et ca marche en local ? ! non de non je dis la..
en fait dans le premier argument de fopen, c'est le chemin de ton fichier..
voilà la ca devrait aller mieux :P
Zep3k!Gno
$fp = fopen("http://www.commentcamarche.net","r"); //lecture du fichier
et ca marche en local ? ! non de non je dis la..
en fait dans le premier argument de fopen, c'est le chemin de ton fichier..
$file=fopen("./monfichier.txt","r");
voilà la ca devrait aller mieux :P
Zep3k!Gno
bin tu les récupères via ftp puis près tu travail dessus...
http://www.nexen.net/docs/php/annotee/function.ftp-get.php?lien=ftp
EnJoY
Zep3k!GnO
http://www.nexen.net/docs/php/annotee/function.ftp-get.php?lien=ftp
EnJoY
Zep3k!GnO
mais normalement fopen devrait fonctionner avec les fichiers distants, non ?
Oui effectivement : http://www.nexen.net/docs/php/annotee/function.fopen.php
Par contre je verrai bien avec ca :
plutot que ton
bon Courage.
Zep3k!GnO
Oui effectivement : http://www.nexen.net/docs/php/annotee/function.fopen.php
Par contre je verrai bien avec ca :
$fp = fopen("http://www.commentcamarche.net/monFichier_a_lire.txt","r"); //lecture du fichier
plutot que ton
$fp = fopen("http://www.commentcamarche.net","r"); //lecture du fichier
bon Courage.
Zep3k!GnO
salut coco
moi c <html>
<head>
<title>essai formulaire</title>
</head>
<body>
<? print("message : ".$_GET["msg"]."<br>\n");
print("nom : ".$_POST["nom"]."<br>\nage : ".$_POST["age"]."<br>\n"); ?>
<form action="exemple3.php?msg=bonjour" method="post">
nom : <input type="text" name="nom">
age : <input type="text" name="age">
<input type="submit" value="Valider">
</form>
</body>
</html> u
moi c <html>
<head>
<title>essai formulaire</title>
</head>
<body>
<? print("message : ".$_GET["msg"]."<br>\n");
print("nom : ".$_POST["nom"]."<br>\nage : ".$_POST["age"]."<br>\n"); ?>
<form action="exemple3.php?msg=bonjour" method="post">
nom : <input type="text" name="nom">
age : <input type="text" name="age">
<input type="submit" value="Valider">
</form>
</body>
</html> u
ini_set ("max_execution_time","90");
cette ligne met le timeout à 90, le temps peut etre ralonger en fonction des besoins... Il suffi de la mettre en debut de page
cette ligne met le timeout à 90, le temps peut etre ralonger en fonction des besoins... Il suffi de la mettre en debut de page
D'apres le manuel PHP :
Si PHP a décidé que filename spécifie un protocole enregistré, et que ce protocole est enregistré comme un protocole réseau, PHP s'assurera que la directive allow_url_fopen est activée. Si elle est inactive, PHP va émettre une alerte et l'ouverture va échouer.
C'est une histoire de config php. Faux allé faire un petit tour dans ton '/etc'.
Si PHP a décidé que filename spécifie un protocole enregistré, et que ce protocole est enregistré comme un protocole réseau, PHP s'assurera que la directive allow_url_fopen est activée. Si elle est inactive, PHP va émettre une alerte et l'ouverture va échouer.
C'est une histoire de config php. Faux allé faire un petit tour dans ton '/etc'.
Yiep ! bien joué :D
Zep3k!GnO