file_exists, clearstatcache, sleep et header
Posté : 03 nov. 2006, 19:08
Voilà, je suis totalement débutant en développement web et je me trouve confronté à 36000 pb sur la fonction que je veux mettre en place :
J'affiche une page à l'écran et attends qu'un autre process dépose un fichier xml sur le serveur. Quand il y est, je veux diriger le visiteur sur une page html qui lui affiche le résultat.
Donc, après plusieurs tentatives, plusieurs méthodes... j'arrive à des solutions de plus en plus dégradées et de moins en moins élégantes.
Voila le script que je mets à la fin de ma page :
<?php
echo "wait";
while(file_exists("resultat.xml") === false)
{
echo ".";
sleep(1);
clearstatcache();
}
echo '<script>document.location = "/resultat.htm";</script>';
?>
Premier point :
Le file_exists refuse obstinément de me donner un résultat correct : il ne capte l'information (présence ou absence du fichier) qu'au chargement initial de la page et même si le fichier est déposé après, file_exists me ramène false. Inversement il me ramène toujours true si le fichier était initialement présent, mêlme s'il est supprimé. La commande clearstatcache ne change rien.
Second point :
La commande Sleep n'a strictement aucun effet. Du coup, comme dans la boucle je fais 'echo "."', les points se cumulent par milliers à la vitesse grand V.
Voili voilou.
J'affiche une page à l'écran et attends qu'un autre process dépose un fichier xml sur le serveur. Quand il y est, je veux diriger le visiteur sur une page html qui lui affiche le résultat.
Donc, après plusieurs tentatives, plusieurs méthodes... j'arrive à des solutions de plus en plus dégradées et de moins en moins élégantes.
Voila le script que je mets à la fin de ma page :
<?php
echo "wait";
while(file_exists("resultat.xml") === false)
{
echo ".";
sleep(1);
clearstatcache();
}
echo '<script>document.location = "/resultat.htm";</script>';
?>
Premier point :
Le file_exists refuse obstinément de me donner un résultat correct : il ne capte l'information (présence ou absence du fichier) qu'au chargement initial de la page et même si le fichier est déposé après, file_exists me ramène false. Inversement il me ramène toujours true si le fichier était initialement présent, mêlme s'il est supprimé. La commande clearstatcache ne change rien.
Second point :
La commande Sleep n'a strictement aucun effet. Du coup, comme dans la boucle je fais 'echo "."', les points se cumulent par milliers à la vitesse grand V.
Voili voilou.