Jump to content

Comportement bizarre de file_exists() en php


Recommended Posts

Bonjour,

Avez-vous déjà rencontré des soucis relatifs à la fonction file_exists() de php ?  J'ai remarqué que j'ai souvent des alertes E_WARNING suite à l'accès à un fichier qui n'existe pas. Pourtant, un test est effectué juste avant l'opération comme ici par exemple :

if(file_exists($this->chemin)){
       unlink( $this->chemin ) ;
 }

Et je me retrouve avec  : WARNING unlink, no such file or directory... Comme si file_exists() ne disait pas la vérité à l'instant t. Bon, on pourrait aussi très bien imaginer que la présence du fichier change entre les 2 appels de fonction mais ça le fait beaucoup trop fréquemment pour être le cas.

 

 

Link to post
Share on other sites
  • Administrators

Bonjour, 

a quelle fréquence vous effectuez ceci sur des fichiers qui ont quelle durée de vie?
Si c'est quelque chose de rapide, il est possible que le NFS joue un rôle important dans ce problème. 
Si vous créez un fichier A et que vous essayez de le supprimé dans la seconde qui suit , depuis un autre serveur WEB il est possible que fichier ne soit pas encore présent. 
Ou bien , le fichier est supprimé sur le serveur 1 et sur le serveur 9 vous faites la vérification si le fichier existe (il existe) et juste avant de le supprimer il n'est plus présent. 
Le délai est cependant très court normalement. 

Link to post
Share on other sites

En l’occurrence là, le problème se produit sur mon système de cache. Lorsque quelqu'un fait quelque chose, il y a suppression du fichier en cache. Ensuite, lorsqu'une autre personne consulte la ressource, je regarde si le fichier correspondant existe, si c'est le cas, je n'ai qu'à le lire, autrement, je fais mes requêtes et je stocke le résultat dans un fichier. Effectivement, ça peut venir du nfs, j'avais pas pensé à ça.

  • Like 1
Link to post
Share on other sites

Il faut que je continue à investiguer. Le problème ne se pose (d'après mes logs) que sur 2 données particulières mises en cache, il y a donc peut-être un souci de mon côté. En attendant, j'ai caché les warning sur le site.

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...