Existance d'un fichier en ligne

nams2590 Messages postés 13 Date d'inscription vendredi 30 décembre 2005 Statut Membre Dernière intervention 12 février 2007 - 26 janv. 2007 à 21:15
nams2590 Messages postés 13 Date d'inscription vendredi 30 décembre 2005 Statut Membre Dernière intervention 12 février 2007 - 27 janv. 2007 à 14:56
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

Evangun Messages postés 1980 Date d'inscription dimanche 20 février 2005 Statut Membre Dernière intervention 24 septembre 2012 4
26 janv. 2007 à 22:24
Salut, elle retourne une une erreur.

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

else {
    pas bon
}

à+
nams2590 Messages postés 13 Date d'inscription vendredi 30 décembre 2005 Statut Membre Dernière intervention 12 février 2007
26 janv. 2007 à 23:10
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.
Evangun Messages postés 1980 Date d'inscription dimanche 20 février 2005 Statut Membre Dernière intervention 24 septembre 2012 4
26 janv. 2007 à 23:52
Pas possible ça...

copie colle ça pour t'en convaincre :

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

    echo '1';
}
else
{
    echo '0';
}
nams2590 Messages postés 13 Date d'inscription vendredi 30 décembre 2005 Statut Membre Dernière intervention 12 février 2007
27 janv. 2007 à 10:17
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. 

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

Posez votre question
cs_Springer Messages postés 85 Date d'inscription lundi 14 juillet 2003 Statut Membre Dernière intervention 14 mars 2007 1
27 janv. 2007 à 11:21
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
Evangun Messages postés 1980 Date d'inscription dimanche 20 février 2005 Statut Membre Dernière intervention 24 septembre 2012 4
27 janv. 2007 à 11:50
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.
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
27 janv. 2007 à 14: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)
nams2590 Messages postés 13 Date d'inscription vendredi 30 décembre 2005 Statut Membre Dernière intervention 12 février 2007
27 janv. 2007 à 14:56
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.
Rejoignez-nous