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.
Merci pour l’astuce, exactement ce je cherchais ^^
Je t’en prie, content que ça serve
Simple mais efficace fallait y penser merci !
Effectivement, ça m’a été très utile !
Merci !
Non mais ça marche pas …
Ça me rend fou, ça fait 8 mois que je cherche à fonctionner ce file_exists
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.
Merki ca fait 2 jours que je cherche !!