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 :

[Système] Tester l'existence d'un fichier distant


Sujet :

Langage PHP

  1. #1
    Invité
    Invité(e)
    Par défaut [Système] Tester l'existence d'un fichier distant
    Bonjour,

    J'ai un site qui peut se mettre à jour en allant chercher des fichiers sur un autre site. Avant de me connecter, je vérifie l'existence d'un fichier afin de tester si j'arrive à atteindre le serveur en fait.

    Pour cela, mon prédécesseur a utilisé cette fonction trouvé sur un autre site :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    function url_exists($url_a_tester)
    {
           $f = fopen($url_a_tester, "r");
           return ($f)? true : false;
    }
    N'est-il pas possible d'utiliser la fonction is_file ? Je ne comprends pas trop l'intérêt de l'autre fonction par rapport à is_file.

    Y'a-t'il des problèmes avec les hébergeurs avec soit is_file ou fopen?

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    957
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 957
    Points : 1 177
    Points
    1 177
    Par défaut
    Raison historique peut-etre, quel version de PHP utilisez-vous sur ce projet ?

  3. #3
    Invité
    Invité(e)
    Par défaut
    PHP 5, et is_file existe depuis php3.

    Est-ce possible que cette fonction soit bloquée par certains hébergeurs ?
    Dernière modification par Domi2 ; 25/08/2011 à 16h54.

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    957
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 957
    Points : 1 177
    Points
    1 177
    Par défaut
    Oui mais ce n'est que depuis la version 5 qu'elle peut s'utiliser avec des protocoles URL (voir la doc)

  5. #5
    Invité
    Invité(e)
    Par défaut
    Ah ok merci. Mais de toute façon mes 2 serveurs ont php5 dessus.

    Je pose la question car il y a qqch que je ne comprends pas. En fait mon système de mise à jour fonctionne aléatoirement... J'ai un site qui fonctionne très bien qui est chez un autre hébergeur. J'en ai un qui est chez le même hébergeur et qui fonctionne également, mais j'ai également un site, chez le même hébergeur que celui qui contient les mise à jour mais celui-ci ne fonctionne pas...

    Je ne comprends pas.

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    957
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 957
    Points : 1 177
    Points
    1 177
    Par défaut
    Qu'est-ce qui ne fontionne pas ?

  7. #7
    Invité
    Invité(e)
    Par défaut
    Il n'arrive pas à trouve le fichier sur mon serveur. Je suis sûr à 100% de l'adresse que j'utilise. Ce n'est pas un problème de lien.

  8. #8
    Membre actif Avatar de Mogwaï
    Inscrit en
    Mai 2004
    Messages
    247
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Mai 2004
    Messages : 247
    Points : 278
    Points
    278
    Par défaut
    C'est une URL ou un chemin sur disque local que tu lui passes à ta fonction ?

  9. #9
    Invité
    Invité(e)
    Par défaut
    Je lui passes une url du type "http://www.monsitequicartonne.net/ledossier/lefichier.lextension"

  10. #10
    Membre éprouvé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    957
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 957
    Points : 1 177
    Points
    1 177
    Par défaut
    Si c'est strictement le meme code ca se joue peut etre sur la configuation des serveurs, Essaye http://uk2.php.net/manual/fr/function.stat.php pour voir s'il te renvoie la meme chose.

  11. #11
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777
    Par défaut
    Citation Envoyé par babastutz
    N'est-il pas possible d'utiliser la fonction is_file ?
    Je vois mal is_file gérer le protocole HTTP : il est bien trop complexe de ce point de vue.

    Citation Envoyé par babastutz
    Y'a-t'il des problèmes avec les hébergeurs avec soit is_file ou fopen?
    Il faut que allow_url_fopen soit à On pour que vous puissiez utiliser des URL comme des fichiers locaux. Si tel n'était pas le cas j'imagine que vous auriez un message d'erreur allant en ce sens.

    Citation Envoyé par batataw
    Oui mais ce n'est que depuis la version 5 qu'elle peut s'utiliser avec des protocoles URL (voir la doc)
    Ça existait bien avant, la fonctionnalité allow_url_fopen existe depuis la version 4.0.3 !

    Citation Envoyé par batataw
    Essaye http://uk2.php.net/manual/fr/function.stat.php pour voir s'il te renvoie la meme chose.
    La fonction stat ne supporte pas le protocole HTTP.

    Quel est le problème en fin de compte ? fopen fonctionnera très bien et avec une version 5 on peut même aller plus loin (timeout notamment, requiert une version >= 5.2.1) voir avec l'extension cURL (au moins pas de problème de compatibilité puisque valable sur PHP 4/5).

  12. #12
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par julp
    Quel est le problème enfin de compte ? fopen fonctionnera très bien et avec une version 5 on peut même aller plus loin (timeout notamment, requiert une version >= 5.2.1) voir avec l'extension cURL (au moins pas de problème de compatibilité puisque valable sur PHP 4/5).

    En fin de compte mon problème c'est que, au contraire, fopen ne fonctionne pas très bien.

    Pourquoi depuis un site je peux lire le fichier sur mon serveur et que depuis un autre site je ne peux pas. Alors qu'ils sont les deux chez le même hébergeur. C'est à n'y rien comprendre.

  13. #13
    Membre actif Avatar de Mogwaï
    Inscrit en
    Mai 2004
    Messages
    247
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Mai 2004
    Messages : 247
    Points : 278
    Points
    278
    Par défaut
    Citation Envoyé par babastutz Voir le message
    fopen ne fonctionne pas très bien
    Qu'appelles-tu "ne fonctionne pas très bien" ?
    Quel message d'erreur as-tu ?

  14. #14
    Invité
    Invité(e)
    Par défaut
    Mais en fait y'a pas de message d'erreur. Mais c'est impossible qu'il trouve mon fichier depuis un site et pas depuis un autre.

    J'arrive pas à comprendre. Surtout que c'est depuis le même hébergeur. Y'a une feinte quelque part

  15. #15
    Membre actif Avatar de Mogwaï
    Inscrit en
    Mai 2004
    Messages
    247
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Mai 2004
    Messages : 247
    Points : 278
    Points
    278
    Par défaut
    Tu as essayé d'utiliser ta fonction sur d'autres sites, par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    url_exists("http://www.pompotron.com/")

  16. #16
    Invité
    Invité(e)
    Par défaut
    J'ai essayé avec http://www.google.ch mais sans résultat...

  17. #17
    Membre actif
    Inscrit en
    Juillet 2007
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 201
    Points : 241
    Points
    241
    Par défaut
    tu as essayer ceci?

    http://fr.php.net/manual/fr/function.fsockopen.php

    en ajoutant $errno, $errstr

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $fp = fsockopen("adresse de ta page", 80, $errno, $errstr, 30);
    pour savoir au moins s'il t'affiche un message d'erreur...

Discussions similaires

  1. [AJAX] Tester l'existence d'un fichier distant
    Par Marmotton76 dans le forum AJAX
    Réponses: 7
    Dernier message: 17/08/2011, 14h56
  2. Réponses: 3
    Dernier message: 31/07/2011, 05h15
  3. Tester l'existence d'un fichier distant
    Par renaud26 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 14/04/2008, 15h20
  4. Tester l'existence d'un fichier distant
    Par Fluxy dans le forum Linux
    Réponses: 2
    Dernier message: 28/03/2007, 19h38
  5. Peut on tester l'existence d'un fichier ?
    Par Alamassepointcom dans le forum Flash
    Réponses: 2
    Dernier message: 10/10/2002, 12h10

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