File_exists

Signaler
Messages postés
296
Date d'inscription
mardi 9 janvier 2007
Statut
Membre
Dernière intervention
21 novembre 2008
-
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
-
<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /??>
 




salut tous le monde,

j'ai un problèmes c'est que je ne sais pas pourquoi même si le fichier existe il est considérer comme inexistant
$lien est un fichier externe genre 'http://www.site.com/file1.mp3'

if (file_exists($lien)) {
echo 'oui';
} else {
echo 'non';


}

merci d'avance


 
A voir également:

15 réponses

Messages postés
2483
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
16
Salut,

En php4, file_exists() ne peut vérifier l'existence que des fichiers sur le système de fichiers local. Pas à distance. Donc exit la vérification par http, ftp ou aurte.

En PHP5, c'est possible avec quelques protocoles (entre autres http et ftp). Voir ici : http://www.php.net/manual/fr/wrappers.php

Donc si tu es en php4, c'est normal que ça ne marche pas. Si t'es en PHP5, c'est une autre histoire... Et ta version de PHP, j'arrive pas à la deviner ;)
Messages postés
296
Date d'inscription
mardi 9 janvier 2007
Statut
Membre
Dernière intervention
21 novembre 2008

j'ai php4
Messages postés
2483
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
16
Ben voilà... La doc t'informe que php4 ne permet pas d'utiliser file_exists() avec des fichiers distants.
Tu dois pouvoir te débrouiller en utilisant fopen() ou fsockopen()
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
39
kelm_by non seulement tu ne lis toujours pas les docs, mais en plus tu ne lis plus les reponses... tu m'etonneras toujours...

vire ton http:// et met une url relative ou absolue mais LOCALE a la place...

si tu veux vraiment faire ca par http, faut faire un fsockopen, ecrire sur le serveur un truc genre :
GET /page HTTP/1.1\r\nHost: www.host.com\r\n\r\n
et voir si il te dit 404 not found ou autre chose
/**
* @author coucou747 <coucou747@hotmail.com>
* @see irc://cominweb.uni-irc.net/#programmation
*/
Messages postés
8
Date d'inscription
lundi 21 novembre 2005
Statut
Membre
Dernière intervention
11 décembre 2017

Sinon cette syntaxe fonctionne très bien :

if (@fopen($monFichier, 'r')) {
    // Code
}
Messages postés
2483
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
16
Oui, mais un @ devant fopen, c'est moche et à proscrire autant que possible.
Mais quand est-ce que vous allez vous décider à affronter les erreurs ?

<hr size="2" width="100%" />Neige
Messages postés
8
Date d'inscription
lundi 21 novembre 2005
Statut
Membre
Dernière intervention
11 décembre 2017

Oui mais dans ce cas il affichera une erreur si le fichier est inexistant
Messages postés
2483
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
16
Salut,

Ben... réfléchis... tu peux tester avant si le fichier existe ou pas...

<hr size="2" width="100%" />Neige
Messages postés
8
Date d'inscription
lundi 21 novembre 2005
Statut
Membre
Dernière intervention
11 décembre 2017

Euh... on cherche justement une alternative au test de fichier avec file_exists(), qui ne fonctionne pas pour les fichiers externes sous PHP 4.
Messages postés
2483
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
16
Ah ouais, pfffffffffff mais faut dire aussi, pour ma défense, un vieux post déterré comme ça, j'avais à peine relu de quoi il s'agissait...
Bon et puis y'a qu'à utiliser PHP5, y'a pas beaucoup d'hébergeurs qui l'utilisent pas, quand même... Même chez Free on peut utiliser PHP5, c'est dire, quand même...

<hr size="2" width="100%" />Neige
Messages postés
8
Date d'inscription
lundi 21 novembre 2005
Statut
Membre
Dernière intervention
11 décembre 2017

T'inquiètes ;)
J'ai répondu pour donner une solution dans le cas où d'autres auraient besoin de ça comme moi.
D'habitude j'évite au max les @ évidemment, mais parfois c'est bien pratique quand même.
Messages postés
2483
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
16
Oui oui, non, mais moi aussi j'en mets parfois... Mais quand je sais que je traite le problème s'il doit y avoir une erreur... C'est juste que de nombreux débutants en mettent à tout va pour pas que ça vienne polluer leur page web, sans se soucier du fonctionnement de leur script... Si c'est pas malheureux...

<hr size="2" width="100%" />Neige
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
39
ton @ ne fonctionnera pas... faut ouvrir un fsockopen ou une session curl...

/**
* @author coucou747 <coucou747@hotmail.com>
* @see irc://cominweb.uni-irc.net/#programmation
*/
Messages postés
8
Date d'inscription
lundi 21 novembre 2005
Statut
Membre
Dernière intervention
11 décembre 2017

Je l'ai mis dans un script et ça fonctionne très bien ...
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
39
en php4 ca fonctionne tres bien ? et ca te donne quoi pour http://www.google.fr ? ca existe ou pas ?

/**
* @author coucou747 <coucou747@hotmail.com>
* @see irc://cominweb.uni-irc.net/#programmation
*/