Maison >développement back-end >tutoriel php >Pourquoi mon code stocke-t-il uniquement la dernière ligne du fichier texte dans le tableau, au lieu de toutes les lignes ?

Pourquoi mon code stocke-t-il uniquement la dernière ligne du fichier texte dans le tableau, au lieu de toutes les lignes ?

DDD
DDDoriginal
2024-10-29 03:09:02758parcourir

Why does my code only store the last line of the text file in the array, instead of all lines?

Lecture des lignes de fichiers texte dans les éléments du tableau

Question :

Dans cet extrait de code pour lire un fichier texte ligne par ligne dans un tableau :

<code class="php">$file = fopen("members.txt", "r");
while (!feof($file)) {
  $line_of_text = fgets($file);
  $members = explode('\n', $line_of_text);
}
fclose($file);</code>

Pourquoi le tableau $members ne contient-il que la dernière ligne du fichier texte, plutôt qu'un élément pour chaque ligne ?

Réponse :

Le code fourni lit correctement les lignes du fichier texte mais rencontre un problème lors de la création du tableau de lignes. L'utilisation d'exploser('n', $line_of_text) dans la boucle écrase le tableau $members à chaque itération, ne stockant finalement que la dernière ligne.

Pour résoudre ce problème, utilisez plutôt la fonction file :

<code class="php">$lines = file($filename, FILE_IGNORE_NEW_LINES);</code>

Cette fonction crée directement un tableau où chaque élément représente une ligne du fichier texte. L'utilisation de FILE_IGNORE_NEW_LINES ignore le caractère de nouvelle ligne de chaque ligne, garantissant que le tableau ne contient que le contenu de la ligne.

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