Maison >développement back-end >tutoriel php >Pourquoi ma boucle PHP `while (!feof())` n'affiche-t-elle pas l'intégralité du fichier texte et comment puis-je y remédier ?
PHP - Inefficacité des boucles dans la lecture et l'affichage du contenu d'un fichier texte
En PHP, votre objectif est de lire et d'afficher efficacement l'intégralité d'un texte déposer. Cependant, vous avez rencontré un problème où la boucle while (!feof()) ne génère pas tout le contenu comme prévu.
Le problème survient en raison de l'emplacement de la vérification de fin de fichier (EOF). . Dans votre code, la vérification EOF est effectuée avant que le contenu ne soit réellement généré. Cela peut entraîner des situations où la dernière chaîne du fichier n'est que partiellement imprimée.
Pour remédier à cela, placez votre vérification EOF dans le processus de lecture lui-même. Le code corrigé ci-dessous :
while (($buffer = fgets($handle, 4096)) !== false) { $trimmed = trim($buffer); echo $trimmed; }
De plus, il est recommandé d'éviter l'utilisation de l'opérateur de suppression (@) avant fopen car il peut masquer les erreurs pouvant survenir lors de l'ouverture du fichier. Votre code mis à jour sans suppression d'erreur :
$handle = fopen("item_sets.txt", "r");
Maintenant, la boucle parcourra le fichier jusqu'à ce que l'EOF soit atteint, affichant correctement tout le contenu. N'oubliez pas que pour un code robuste, il est conseillé de gérer les erreurs pouvant survenir lors du processus d'ouverture ou de lecture du fichier.
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!