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:
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);
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!