Rumah >pembangunan bahagian belakang >tutorial php >Mengapa kod saya hanya menyimpan baris terakhir fail teks dalam tatasusunan, bukannya semua baris?

Mengapa kod saya hanya menyimpan baris terakhir fail teks dalam tatasusunan, bukannya semua baris?

DDD
DDDasal
2024-10-29 03:09:02810semak imbas

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

Membaca Baris Fail Teks ke dalam Elemen Tatasusunan

Soalan:

Dalam coretan kod ini untuk membaca fail teks baris demi baris ke dalam tatasusunan:

<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>

Mengapakah tatasusunan $members hanya mengandungi baris terakhir fail teks, bukannya elemen untuk setiap baris?

Jawapan:

Kod yang disediakan membaca baris dengan betul daripada fail teks tetapi menghadapi masalah dalam mencipta tatasusunan baris. Menggunakan explode('n', $line_of_text) dalam gelung menimpa tatasusunan $members dalam setiap lelaran, akhirnya hanya menyimpan baris terakhir.

Untuk menyelesaikan isu ini, gunakan fungsi fail sebaliknya:

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

Fungsi ini terus mencipta tatasusunan di mana setiap elemen mewakili baris daripada fail teks. Menggunakan FILE_IGNORE_NEW_LINES melangkau aksara baris baharu daripada setiap baris, memastikan tatasusunan mengandungi kandungan baris sahaja.

Atas ialah kandungan terperinci Mengapa kod saya hanya menyimpan baris terakhir fail teks dalam tatasusunan, bukannya semua baris?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn