Existance d'un fichier en ligne

Signaler
Messages postés
13
Date d'inscription
vendredi 30 décembre 2005
Statut
Membre
Dernière intervention
12 février 2007
-
Messages postés
13
Date d'inscription
vendredi 30 décembre 2005
Statut
Membre
Dernière intervention
12 février 2007
-
Bonjour,

J'ai créé un site perso sur lequel lorsque je rempli un formulaire et que je le valide, un fichier se cré sur mon site perso. Je voudrais à partir d'un serveur local apache savoir si ce fichier existe ou non.

J'ai déja essayé les fonctions suivantes :

file_exists(liendufichier) : Mais cette fonction ne marche que en local apparement.
J'ai voulu utiliser fopen(liendufichier) : Mais je ne sais pas ce que retourne cette fonction lorsque le fichier n'existe pas.

Merci pour vos réponses.

8 réponses

Messages postés
1980
Date d'inscription
dimanche 20 février 2005
Statut
Membre
Dernière intervention
24 septembre 2012
5
Salut, elle retourne une une erreur.

donc
if(fopen(liendufichier, 'r')){
    c'est bon
}

else {
    pas bon
}

à+
Messages postés
13
Date d'inscription
vendredi 30 décembre 2005
Statut
Membre
Dernière intervention
12 février 2007

En gros, ça me répond True si le fichier existe et False si le fichier n'existe pas?

C'est bien ce que je fait.

$handle = fopen($file, 'r');
if (fopen($file, 'r'))
{  
instructions
}
else
{
rien
}

Seulement, que le fichier soit existant ou non, ça entre toujours dans le if. C'est pour ça que je ne comprend pas.
Au départ, je faisait if($handle!=NULL), mais ça me donnait le même résultat.
Messages postés
1980
Date d'inscription
dimanche 20 février 2005
Statut
Membre
Dernière intervention
24 septembre 2012
5
Pas possible ça...

copie colle ça pour t'en convaincre :

$handle = fopen('nbdjsd', 'r');
if ($handle == true)

    echo '1';
}
else
{
    echo '0';
}
Messages postés
13
Date d'inscription
vendredi 30 décembre 2005
Statut
Membre
Dernière intervention
12 février 2007

Voici exactement ce que je rentre :

$handle = fopen($file, 'r');
if ($handle==TRUE)
 {  
 $handle2 = fopen($filelocal,"w");
 $data=fgets($handle,1024);
 fwrite($handle2,$data);
 fclose($handle);
 fclose($handle2);
 exec("c://test/fichier/project1.exe");
 
 // Suppression fichier en ligne
 // connection ftp
  $ftp = @ftp_connect($host);
 // login
   @ftp_login($ftp,"monpseudo", "monmotdepasse");
  ftp_delete($ftp,"bdd");
  ftp_close($ftp);
 unlink($filelocal);
 }
else
{
}

Hors, que le fichier $file, qui est un fichier en ligne existe ou non, je t'assure que ça m'execute mon programme local project1.exe. Donc ça entre dans ma boucle if comme si le fichier existait. Je ne comprend vraiment pas. 
Messages postés
85
Date d'inscription
lundi 14 juillet 2003
Statut
Membre
Dernière intervention
14 mars 2007
1
bonjour,
tu peux aussi vérifier l'existence de ton dossier avec cette fonction :
files_exist("chemin du dossier")
j'ai trouver ceci sur manuelPhp
<?php
$filename = '/chemin/jusqu/a/fichier.txt';

if (file_exists($filename)) {
    print "Le fichier $filename existe";
} else {
    print "Le fichier $filename n'existe pas";
}
?>

cette fonction consomme pas mal de ressource et est à utiliser avec
clearstatcache();
 voici le lien :
http://www.manuelphp.com/php/function.file-exists.php
Messages postés
1980
Date d'inscription
dimanche 20 février 2005
Statut
Membre
Dernière intervention
24 septembre 2012
5
fais voir ton adresse ? si ça se trouve c'est le site qui te renvoie qqch, que le fichier existe ou non... et pour le file_exists ça ne marche surement qu'en local.
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
39
Salut,

Faut faire ça avec un fsockopen et voir si ça renvoi 404

In a dream, I saw me, drop dead... U was there, U cried... It was just a dream, if I die, U won't cry, maybe, U'll be happy

Mon site (articles sur la programmation et programmes)
Messages postés
13
Date d'inscription
vendredi 30 décembre 2005
Statut
Membre
Dernière intervention
12 février 2007

mon adresse est http://namselectro.chez-alice.fr. J'ai un formulaire dans la section autres. Lorsque que valide ce formulaire, un fichier nommé bdd se créé à l'adresse suivante : http://namselectro.chez-alice.fr/bdd. En local, j'ai un serveur apache qui vérifie l'existance de ce ficher toute les 5 secondes.

2 cas :    Si ce fichier existe : je l'ouvre, le recopie et execute un programme C (project1). Puis efface le fichier en ligne.
           
              - Si ce fichier n'existe pas. Ca ne doit rien faire. Le problème c'est que je vois que mon programme C s'execute que le fichier en ligne existe ou non. Et évidement, si le fichier existe pas, mon programme C fait n'importe quoi.

Pour file_exists(). Ca ne fonctionne en effet qu'en local.

Par contre, pour la fonction fsockopen, je vois pas très bien comment il faut l'utiliser. J'ai regardé sur http://www.manuelphp.com/php/function.fsockopen.php, mais j'ai pas tout compris.