Mengapa Saya Mendapat Talian Baharu Mengekori Semasa Menulis ke Fail dalam PHP?

Susan Sarandon
Lepaskan: 2024-11-11 12:49:02
asal
794 orang telah melayarinya

Why Am I Getting Trailing Newlines When Writing to a File in PHP?

Kecelakaan Suapan Baris dalam PHP: Mengatasi Baris Baharu Mengekori

Apabila menulis ke fail dalam PHP menggunakan fwrite() dengan mod 'w' , adalah perkara biasa untuk aksara baris baharu yang tidak dijangka dilampirkan pada output. Ini adalah kes dalam kod yang disediakan, di mana 'n' bertujuan untuk mencipta pemisah baris tetapi sebaliknya muncul sebagai rentetan.

N Dilema

Sebab di sebalik tingkah laku pelik ini terletak pada urutan melarikan diri yang digunakan. Secara lalai, rentetan petikan tunggal menganggap 'n' sebagai garis sengkang terbalik literal diikuti dengan huruf 'n', bukan aksara baris baharu. Untuk membetulkannya, anda perlu menggunakan rentetan petikan dua kali dan melarikan aksara baris baharu dengan betul menggunakan "n".

Pengakhiran Garisan Windows dan Unix

Aspek lain yang perlu dipertimbangkan ialah watak penamat baris. Sistem pengendalian yang berbeza menggunakan konvensyen yang berbeza untuk penamat talian:

  • Windows: "rn" (carriage return diikuti dengan baris baharu)
  • Sistem berasaskan Unix (termasuk Linux dan macOS): "n " (baris baharu sahaja)

Untuk memastikan pengendalian penamat talian yang betul, adalah disyorkan untuk membuka fail dalam binari mod, yang membolehkan menulis data mentah tanpa sebarang penukaran pengakhiran baris. Ini melibatkan penggunaan 'wb' sebagai parameter kedua untuk fopen().

Kod Kemas Kini:

Dengan melaksanakan pembetulan ini, kod yang diubah suai di bawah berjaya menulis setiap ID permata pada baris baharu tanpa sebarang aksara luar:

$i = 0;
$file = fopen('ids.txt', 'wb');
foreach ($gemList as $gem)
{
    fwrite($file, $gem->getAttribute('id') . "\n");
    $gemIDs[$i] = $gem->getAttribute('id');
    $i++;
}
fclose($file);
Salin selepas log masuk

Atas ialah kandungan terperinci Mengapa Saya Mendapat Talian Baharu Mengekori Semasa Menulis ke Fail dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan