The Troll's factory

Geekeries & pensées
-->

[PHP] Effectuer un is_file() ou file_exists() sur un fichier distant (HTTP)

Dans la lignée de la précédente astuce sur les fichiers distants en voici une autre, plus courte, mais qui pourrait bien en dépanner plus d’un. En effet la fonction is_file() ou encore la fonction file_exists() sont des fonctions faites pour fonctionner sur le système de fichier local. Et elles ne fonctionneront donc pas si vous cherchez à savoir si le fichier « http://web.com/fichier.blabla » existe ou pas.

L’astuce est toute simple, elle consiste à tenter d’ouvrir le fichier, avec une fonction qui elle, prend en charge le HTTP :

function FichierDistantExiste($url) {
   if(!@fopen($url, 'r')) return false;
   else return true;
}

Ce fut bref, mais j’espère que cela vous sera utile :)

Attention par contre, sauf erreur de ma part certaines configurations PHP (notamment sur des mutualisés évidemment, mais pas tous hein) empêchent fopen() d’utiliser le HTTP. Dans ce cas, on serait bien tenté d’utiliser la fonction file_get_contents() sauf qu’en fait ce n’est qu’une espèce de raccourci pour les fonction fopen(), fgets() et fclose() les un après les autres. Donc si l’un est bridé l’autre devrait l’être aussi. À vous de tester, on ne sait jamais.

Share and Enjoy:
  • Print
  • PDF
  • Twitter
  • Facebook
  • LinkedIn
  • RSS
  • Wikio FR
  • Digg
  • del.icio.us
  • Google Bookmarks
  • Technorati
  • Sphinn
  • Mixx
  • Add to favorites
  • Live
  • Netvibes
  • Scoopeo
  • viadeo FR
  • Identi.ca
  • MySpace
  • StumbleUpon
  • Yahoo! Buzz
posté par Troll dans Scripts, astuces, dév. web avec 7 commentaires

7 réponses à “[PHP] Effectuer un is_file() ou file_exists() sur un fichier distant (HTTP)”

  1. Scorps dit :

    Merci pour l’astuce, exactement ce je cherchais ^^

  2. Troll dit :

    Je t’en prie, content que ça serve :)

  3. YZ972 dit :

    Simple mais efficace fallait y penser merci !

  4. Nicolas dit :

    Effectivement, ça m’a été très utile !
    Merci !

  5. enlsid dit :

    Non mais ça marche pas …

    Ça me rend fou, ça fait 8 mois que je cherche à fonctionner ce file_exists

  6. Troll dit :

    Salut enlsid,

    Tu peux donner des détails ? Genre le petit bout de code qui marche pas ? Pas un code de dizaines de ligne, juste un exemple de ce qui marche pas pour toi.

  7. ed dit :

    Merki ca fait 2 jours que je cherche !! :)

Poster un commentaire

Remplissez le formulaire suivant pour poster un message.
Nom
Email
Site internet
Votre commentaire