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 ?

Pourquoi ma boucle PHP `while (!feof())` n'affiche-t-elle pas l'intégralité du fichier texte et comment puis-je y remédier ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-05 20:18:12698parcourir

Why is my PHP `while (!feof())` loop not displaying the entire text file, and how can I fix it?

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn