Maison >développement back-end >tutoriel php >Pourquoi ma boucle PHP `while (!feof())` produit-elle une sortie incomplète ?
Boucle PHP : résolution d'une sortie incomplète avec while (!feof())
En PHP, vous pouvez rencontrer des situations où une boucle utilisant while (!feof()) ne génère pas tout le contenu attendu. Ce problème peut survenir en raison d'un placement incorrect de la vérification EOF dans la boucle, comme démontré par un utilisateur essayant de lire et de faire écho à un fichier .txt entier.
Le code d'origine :
$handle = fopen("item_sets.txt", "r"); while (!feof($handle)) { $buffer = fgets($handle, 4096); $trimmed = trim($buffer); echo $trimmed; }
Dans ce code, la vérification de l'EOF est effectuée avant de sortir le contenu lu. En conséquence, la boucle se termine et arrête la lecture du fichier avant que la dernière ligne ne soit complètement imprimée.
La solution consiste à intégrer la vérification EOF dans le processus de lecture :
$handle = fopen("item_sets.txt", "r"); while (($buffer = fgets($handle, 4096)) !== false) { $trimmed = trim($buffer); echo $trimmed; }
En déplaçant le EOF vérifie l'état de la boucle while, le code garantit que la boucle continue de lire et d'imprimer les lignes jusqu'à ce que la fin du fichier soit atteinte.
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!