File_exists

kelm_by Messages postés 296 Date d'inscription mardi 9 janvier 2007 Statut Membre Dernière intervention 21 novembre 2008 - 3 déc. 2007 à 21:32
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 - 18 mars 2008 à 23:27
<?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


 

15 réponses

neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
3 déc. 2007 à 23:05
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 ;)
0
kelm_by Messages postés 296 Date d'inscription mardi 9 janvier 2007 Statut Membre Dernière intervention 21 novembre 2008
3 déc. 2007 à 23:07
j'ai php4
0
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
3 déc. 2007 à 23:11
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()
0
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
4 déc. 2007 à 07:27
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
*/
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
julian75 Messages postés 8 Date d'inscription lundi 21 novembre 2005 Statut Membre Dernière intervention 11 décembre 2017
18 mars 2008 à 10:07
Sinon cette syntaxe fonctionne très bien :

if (@fopen($monFichier, 'r')) {
    // Code
}
0
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
18 mars 2008 à 10:30
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
0
julian75 Messages postés 8 Date d'inscription lundi 21 novembre 2005 Statut Membre Dernière intervention 11 décembre 2017
18 mars 2008 à 13:47
Oui mais dans ce cas il affichera une erreur si le fichier est inexistant
0
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
18 mars 2008 à 13:52
Salut,

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

<hr size="2" width="100%" />Neige
0
julian75 Messages postés 8 Date d'inscription lundi 21 novembre 2005 Statut Membre Dernière intervention 11 décembre 2017
18 mars 2008 à 19:48
Euh... on cherche justement une alternative au test de fichier avec file_exists(), qui ne fonctionne pas pour les fichiers externes sous PHP 4.
0
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
18 mars 2008 à 20:05
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
0
julian75 Messages postés 8 Date d'inscription lundi 21 novembre 2005 Statut Membre Dernière intervention 11 décembre 2017
18 mars 2008 à 20:07
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.
0
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
18 mars 2008 à 20:18
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
0
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
18 mars 2008 à 23:06
ton @ ne fonctionnera pas... faut ouvrir un fsockopen ou une session curl...

/**
* @author coucou747 <coucou747@hotmail.com>
* @see irc://cominweb.uni-irc.net/#programmation
*/
0
julian75 Messages postés 8 Date d'inscription lundi 21 novembre 2005 Statut Membre Dernière intervention 11 décembre 2017
18 mars 2008 à 23:09
Je l'ai mis dans un script et ça fonctionne très bien ...
0
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
18 mars 2008 à 23:27
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
*/
0
Rejoignez-nous