IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

fopen don't open


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Inscrit en
    Février 2005
    Messages
    250
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 250
    Points : 96
    Points
    96
    Par défaut fopen don't open
    Bonjour,


    J'essaye d'ouvrir un fichier via une url :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $file = fopen('http://download.finance.yahoo.com/d/quotes.csv?s=ALADO.PA&f=ol1r2ee7e8s','r');
      if ($file) echo "ok";   
      else echo 'non';
    Le fichier ne s'ouvre apparemment pas. J'ai téléchargé le fichier et je l'ai mis à la racine de mon fichier php. Quand je remplace l'url par le fichier je peux lire le fichier.

    Le fichier php.ini me semble bien configuré :
    ;;;;;;;;;;;;;;;;
    ; File Uploads ;
    ;;;;;;;;;;;;;;;;

    ; Whether to allow HTTP file uploads.
    file_uploads = On

    ; Temporary directory for HTTP uploaded files (will use system default if not
    ; specified).
    ;upload_tmp_dir =

    ; Maximum allowed size for uploaded files.
    upload_max_filesize = 100M

    max_file_uploads = 200

    ;;;;;;;;;;;;;;;;;;
    ; Fopen wrappers ;
    ;;;;;;;;;;;;;;;;;;

    ; Whether to allow the treatment of URLs (like http:// or ftp://) as files.
    allow_url_fopen = On

    ; Whether to allow include/require to open URLs (like http:// or ftp://) as files.
    allow_url_include = On
    ; Define the anonymous ftp password (your email address)
    ;from="john@doe.com"

    ; Define the User-Agent string
    ; user_agent="PHP"

    ; Default timeout for socket based streams (seconds)
    default_socket_timeout = 500
    J'ai fait un test sur un autre serveur et je peux ouvrir le fichier via l'url.

    Peut être le problème est dû à des restrictions de droits sur le répertoire où se trouve les fichiers php.

    Merci pour votre aide !

    SD

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Si tu veux récuperer le contenu de la page distante, c'est plutôt file_get_contents() qu'il faut utiliser.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre régulier
    Inscrit en
    Février 2005
    Messages
    250
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 250
    Points : 96
    Points
    96
    Par défaut
    Merci pour la réponse mais ca n'a pas l'air de fonctionner. Avec fopen on peut aussi utiliser des url normalement.

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Dans quel but veux-tu utiliser fopen() ?

    Si tu pouvais être plus précis sur tes résultats ça serait plus facile de t'aider.
    Avec file_get_contents(), soit tu recupères le contenu du fichier, soit tu as une erreur mais il n'y pas d’ambiguïté.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre régulier
    Inscrit en
    Février 2005
    Messages
    250
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 250
    Points : 96
    Points
    96
    Par défaut
    Je fais un fopen puis un fgetcsv pour lire le contenu du fichier (on peut peut être faire directement un file_get_contents) . j'ai refait un test si je lis le fichier en faisant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    file_get_contents('quotes.csv',true);

    J'ai mis le fichier téléchargé depuis l'adresse url dans le répertoire du fichier php

    si je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    file_get_contents('http://download.finance.yahoo.com/d/quotes.csv?s=ALADO.PA&f=ol1r2ee7e8s',true);
    en mettant l'adresse url ça ne fonctionne toujours pas. Je ne pense pas que c'est un problème de fonction mais peut être un souci du paramétrage du fichier php.ini ou de restriction sur les dossiers. Sachant que sur l'autre serveur web tout cela fonctionne parfaitement en mettant l'adresse url.

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu ne nous as pas dit l'erreur.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 576
    Points : 2 440
    Points
    2 440
    Par défaut
    La valeur de la directive allow_url_fopen doit être à 1 dans ton php.ini

  8. #8
    Membre régulier
    Inscrit en
    Février 2005
    Messages
    250
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 250
    Points : 96
    Points
    96
    Par défaut
    comme je l'ai posté sur dans mon premier mail allow_url_fopen est à "On".

    Comment voir justement l'erreur retourné par fopen ?

  9. #9
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Si tu ne l'as pas déjà à l'écran, regarde dans ton log PHP.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  10. #10
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 576
    Points : 2 440
    Points
    2 440
    Par défaut
    Citation Envoyé par mcdelay Voir le message
    comme je l'ai posté sur dans mon premier mail allow_url_fopen est à "On".
    Excuse-moi, ça m'apprendra à lire en diagonale.

    - Regarde dans ton phpinfo et la config d'Apache si tu n'as pas des modules qui empêchent les fonctions d'accéder aux urls distantes (par exemple Suhoshin ou ModSecurity)

    - Vérifie avec curl ou wget si tu peux télécharger le même fichier en ligne de commande (hors PHP). C'est peut-être un souci de firewall.

Discussions similaires

  1. fopen, failed to open stream
    Par Unkof dans le forum Langage
    Réponses: 2
    Dernier message: 22/11/2013, 14h32
  2. fopen: failed to open stream
    Par omar344 dans le forum Langage
    Réponses: 4
    Dernier message: 21/10/2012, 13h36
  3. fopen , failed to open stream, droit
    Par Pelmat dans le forum Langage
    Réponses: 3
    Dernier message: 09/04/2008, 12h42
  4. Problème fopen (failed to open stream)
    Par Zolex dans le forum Langage
    Réponses: 4
    Dernier message: 03/10/2007, 08h52
  5. Différence open et fopen
    Par SteelBox dans le forum C
    Réponses: 6
    Dernier message: 01/07/2003, 21h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo