การเขียนบรรทัดใหม่ไปยังไฟล์ใน PHP (ฟีดบรรทัด)


109

รหัสของฉัน:

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

ด้วยเหตุผลบางอย่างมันเขียน\nเป็นสตริงดังนั้นไฟล์จึงมีลักษณะดังนี้:

40119\n40122\n40120\n42155\n36925\n45881\n42145\n45880

จาก Google'ing บอกให้ใช้\r\nแต่\rเป็นการกลับรถซึ่งดูเหมือนจะไม่ใช่สิ่งที่ฉันต้องการทำ ฉันแค่ต้องการให้ไฟล์มีลักษณะดังนี้:

40119
40122
40120
42155
36925
45881
42145
45880

ขอบคุณ.

คำตอบ:


278

แทนที่'\n'ด้วย"\n". 'ลำดับที่หลบหนีออกมาไม่เป็นที่รู้จักเมื่อคุณใช้

ดูคู่มือ

สำหรับคำถามของวิธีการที่จะเขียนตอนจบบรรทัดดูโน้ตที่นี่ โดยทั่วไประบบปฏิบัติการที่แตกต่างกันจะมีรูปแบบการสิ้นสุดบรรทัดที่แตกต่างกัน Windows ใช้ "\ r \ n" ระบบปฏิบัติการที่ใช้ยูนิกซ์ใช้ "\ n" คุณควรยึดตามแบบแผนเดียว (ฉันเลือก "\ n") และเปิดไฟล์ของคุณในโหมดไบนารี ( fopenควรได้รับ "wb" ไม่ใช่ "w")


ฉันเปลี่ยน "\ r \ n" เป็น "\ n" สำหรับการสิ้นสุดบรรทัดของฉันแล้วและมันใช้งานได้ ขอบคุณ.
csonuryilmaz

ตอนนี้รหัสของฉันใช้ทั้งคู่"และ'มันรบกวนฉัน
Mr PizzaGuy

ในความเป็นจริงคุณสามารถสังเกตได้ว่า \ n ถูกไฮไลต์เมื่อใช้ "" แต่ไม่ใช่เมื่อใช้ "" (นี่คือถ้าบรรณาธิการของคุณใช้การเน้นไวยากรณ์ของฉันคือ Sublime Text 3)
DarkVeneno

68

ใช้PHP_EOLเอาท์พุต\r\nใดหรือ\nขึ้นอยู่กับระบบปฏิบัติการ


4
อย่าเดือดร้อนใช้ทุกครั้ง\nเว้นแต่คุณต้องการเปิดไฟล์ในระบบปฏิบัติการเฉพาะ - ถ้าเป็นเช่นนั้นให้ใช้การรวมกันของระบบปฏิบัติการใหม่ไม่ใช่ระบบปฏิบัติการที่คุณใช้งาน PHP บน ( PHP_EOL)
Alix Axel

60

PHP_EOL เป็นค่าคงที่ที่กำหนดไว้ล่วงหน้าใน PHP ตั้งแต่ PHP 4.3.10 และ PHP 5.0.2 ดูการโพสต์ด้วยตนเอง :

การใช้สิ่งนี้จะช่วยให้คุณประหยัดการเข้ารหัสเพิ่มเติมในการพัฒนาข้ามแพลตฟอร์ม

IE.

$data = 'some data'.PHP_EOL;
$fp = fopen('somefile', 'a');
fwrite($fp, $data);

หากคุณวนซ้ำสองครั้งคุณจะเห็นใน 'somefile':

some data
some data

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.