Une boucle d'attente tant qu'1 fichier existe

fdu -  
 fdu -
Bonjour,
J'ai un traitement qui modifie le contenu d'un fichier et une fois ce traitement terminé réaffiche une page qui lit ce même fichier pour en afficher un compte rendu.
Le problème est que parfois le traitement est un peu long et le réaffichage ne me donne pas la réalité du fichier. J'ai donc ajouté une boucle d'attente en testant l'existence du fichier. Seulement elle ne détecte pas que le fichier n'existe plus et continue indéfiniment de boucler !

Voici le code :

$fd1 = fopen($_REQUEST['repertoire'].$_REQUEST['fichier'],"r");
$fd2 = fopen($_REQUEST['repertoire'].$_REQUEST['fichier'].".TEMP","w");
while ($buffer = fgets($fd1)) {
if (substr($buffer,0,4) == "0602") {
fwrite($fd2,substr($buffer,0,118).sprintf("%-31s",strtoupper($_REQUEST['newlibelle'])).substr($buffer,- 13));
} else {
fwrite($fd2,$buffer);
}
}
fclose ($fd1);
fclose ($fd2);
copy ($_REQUEST['repertoire'].$_REQUEST['fichier'],$_REQUEST['repertoire'].$_REQUEST['fichier'].".COPIE.".$horodate);
unlink($_REQUEST['repertoire'].$_REQUEST['fichier']);
copy ($_REQUEST['repertoire'].$_REQUEST['fichier'].".TEMP",$_REQUEST['repertoire'].$_REQUEST['fichier']);
unlink($_REQUEST['repertoire'].$_REQUEST['fichier'].".TEMP");
majrefresh(strtoupper($_REQUEST['newlibelle']),"",strtoupper($_REQUEST['repertoire']),strtoupper($_REQUEST['fichier']));

while (file_exists($_REQUEST['repertoire'].$_REQUEST['fichier'].".TEMP")) {
echo $_REQUEST['repertoire'].$_REQUEST['fichier'].".TEMP1 ";
echo "le fichier est présent<br>";
}
echo "le fichier est absent<br>";

echo "<script type=\"text/javascript\">";
echo "javascript:opener.location.reload();";
echo "javascript:self.close();";
echo "</script>";

Quelqu'un pourrait-il me dire ce qui ne marche pas ?
A voir également:

1 réponse

Mimiste Messages postés 1159 Statut Membre 206
 
hello

essai avec is_file($fichier) pour voir plutot qu'avec file_exists

0
fdu
 
Bonjour Mimiste,

Merci de ta réponse mais le problème subsiste toujours avec is_file.
0