| Php : fopen et erreur par elacsap |
mercredi 11 janvier 2006 à 11:15:22 |
<?
$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
}
?>
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
Je viens de tester la même chose avec un fichier en local et ça fonctionne. Est-ce que ça peut venir du serveur ? |
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..
$file=fopen("./monfichier.txt","r");
voilà la ca devrait aller mieux :P Zep3k!Gno
|
mais normalement fopen devrait fonctionner avec les fichiers distants, non ? |
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 :
$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 |
|
Chez moi cela fonctionne
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 Gates gave you the windows. GNU gave us the whole house.(Alexandrin)
|
saluuuuut ça va bien |
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 |
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. |
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 |
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'. |
|
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'. |
| 09/11 14h09 | Firefox + YubNub = la ligne de commande du web | Web |
| 27/03 16h03 | [PHP] Méthodes de débogage | PHP |
| 31/08 16h30 | [IE] Impossible d'afficher la page | Internet Explorer |
| 15/03 20h08 | Connexion à une base Ingres avec PHP | Ingres |
| 20/03 16h03 | [PHP] Notice: Undefined index: | PHP |
| 01/05 03h05 | PHP/HTML Erreur après un submit | Webmastering | 02/05 18h01 | 1 |
| 29/04 11h11 | [PHP/MSSQL] Erreur syntaxe ? | Programmation | 29/04 11h21 | 3 |
| 05/01 23h12 | [PHP/SQL] erreur http 500 pour une page php | Webmastering | 05/01 23h13 | 1 |
| 10/07 10h17 | [php+mySQL]erreur session | Webmastering | 10/07 17h04 | 3 |
![]() | PHP Edit - PHPEdit est un environnement de développement intégré (IDE) sous Windows pour le langage PHP. Il offre un grand nombre de... | Catégorie: PHP Licence: Freeware/gratuit |
![]() | PSPad - PSPad est un excellent éditeur de texte. Il est utile pour travailler sur du simple texte, mais aussi sur du HTML, CSS,... | Catégorie: Développement Licence: Freeware/gratuit |
![]() | WAMP Server - WAMP5 (WAMP signifiant Windows Apache Mysql PHP) est une plateforme de développement Web sous Windows. Il vous permet de... | Catégorie: Serveurs Licence: Freeware/gratuit |
![]() | easyPHP - EasyPHP est un environnement de travail packagé comprenant le serveur web Apache, le système de gestion de bases de données... | Catégorie: Serveurs Licence: Open Source |