Ceci est mon code: Quand le fichier sera-t-il enregistré? Est-ce immédiatement après avoir écrit à elle ou après la fermeture? P> Je demande cela parce que j'ai Printfil < / a> Écoute des fichiers dans un dossier et imprime tout fichier nouvellement créé. Si PHP commet une sauvegarde immédiatement après Merci pour l'aide. P> P> fwrite code>, je peux courir dans des problèmes d'impression sans capture des écrivies suivantes. P>
4 Réponses :
Le fichier sera enregistré sur FCLOSE. Si vous souhaitez mettre le contenu au fichier avant, utilisez fflush () a>. p>
PHP peut ou non écrire le contenu immédiatement. Il y a une couche de mise en cache entre les deux. Vous pouvez le forcer à écrire à l'aide d'utiliser fflush () , mais vous ne pouvez pas forcer Pour attendre à moins que vous n'utilisiez qu'une seule plume (). P>
Vrai; OTOH, il va certainement écrire le contenu (et relâcher les serrures de fichier) lorsque vous appelez FCLose ().
@Piskvor: Quand le logiciel de surveillance des dossiers de dossier reconnaîtra-t-il le fichier nouvellement créé? Sera-ce après une sauvegarde ou après la libération de verrouillage? Ceci est crucial car il existe quelque 8 000 blocs de contenu texte à écrire dans le fichier et que le programme de surveillance ne doit pas être déclenché nulle part entre les deux. Merci pour vos intrants.
Je ne sais pas, demandez aux gens de Printfil.
@Sjoerd existe-t-il un moyen de changer de chaching sur ou de désactiver? Si c'est le cas, comment?
@Julien, non, pas avec fwrite code>. Vous pouvez utiliser le Module Direct I / O si vous voulez plus de contrôle sur votre écrit.
@Sjoerd, FCLOSE implique FLUSH?
@Pacerier Oui, le fichier est rincé quand il est fermé.
J'ai fait un petit morceau de code pour le tester et il semble que, après Voici mon Test sur Linux. p> Après avoir exécuté le script php, j'utilise fwrite code>, le nouveau contenu sera détecté immédiatement, pas après
fclose code>.
queue -f fichier.txt code> pour détecter le nouveau contenu.Et affiche la nouvelle Contenu en même temps que la balise de sortie de PHP. p> p>
D'ACCORD. Au moins cela donne une idée de la possibilité d'une rinçage avant le temps prévu. Je travaillerai sur des choses en fonction de vos résultats de test. Merci spawn!
J'ai l'impression que cette réponse est un peu trompeuse ... comme sur les systèmes occupés ou si d'autres facteurs sont en jeu, le temps d'écriture variera. Mais en utilisant @sjoerd réponse, vous pouvez garantir le temps d'écriture à l'aide de fflush () code>.
En supposant que votre travail sur PHP 5.x, essayez FILE_PUT_Contents (), car il enveloppe l'open / écriture / proche dans un appel. http://us3.php.net/manual/fr/ Fonction.File-Met-Contenu.php P>