Maison >développement back-end >Problème PHP >PHP peut-il effacer le contenu du fichier ?
php peut effacer le contenu du fichier. La méthode d'implémentation est la suivante : créez d'abord un exemple de fichier PHP ; puis ouvrez le fichier via "fopen($path, "r+");"; fh , LOCK_EX) ){...}" pour effacer le contenu du fichier.
L'environnement d'exploitation de cet article : système windows7, version PHP7.1, ordinateur DELL G3
Questions spécifiques :
php efface le contenu du fichier ?
Comment effacer le contenu d'un fichier en php sans utiliser fopen($file, 'w+').
Mes besoins sont les suivants. Je veux m'assurer que tout le dernier contenu après l'écriture du fichier est supprimé. Si je l'écrase directement, cela ne couvrira que la fin du contenu que j'ai écrit cette fois. l'ancien contenu est plus long que le nouveau contenu, alors ce sera le reste, et le programme PHP doit fonctionner 24 heures sur 24, et l'efficacité du fonctionnement doit être assurée. J'ai essayé la méthode fopen() et j'ai trouvé que cela prenait beaucoup de temps. a été gaspillé lors de la fermeture et de l'ouverture des ressources du fichier. J'ai testé l'activation du verrouillage des fichiers sur ma machine locale. Chaque fois que vous utilisez fopen() pour effacer un fichier, il ne peut être exécuté que 5 000 fois par seconde. il peut être exécuté près de 200 000 fois par seconde, j'aimerais donc demander s'il existe d'autres méthodes pour atteindre cet objectif.
Le code d'implémentation est le suivant :
$fh = fopen($path, "r+"); if( flock($fh, LOCK_EX) ){//加写锁 $old_content=json_decode(fread($fh,filesize($path)),true); $old_content=$old_content.$new_content; ftruncate($fh,0); // 将文件截断到给定的长度 rewind($fh); // 倒回文件指针的位置 fwrite($fh,json_encode($old_content)); // @chmod($path,0644); flock($fh, LOCK_UN); //解锁 } fclose($fh);
Apprentissage recommandé : "Tutoriel vidéo PHP"
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!