PHP'de dosyaya yeni bir satır yazma (satır besleme)


109

Kodum:

$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);

Nedense yazıyor \n bir dizge olarak , bu nedenle dosya şöyle görünüyor:

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

Google'ing'den kullanmamı söylüyor \r\n, ancak \ryapmak istediğim şey gibi görünmeyen bir satır başı. Sadece dosyanın şöyle görünmesini istiyorum:

40119
40122
40120
42155
36925
45881
42145
45880

Teşekkürler.

Yanıtlar:


278

Değiştir '\n'ile "\n". Kaçış dizisi kullandığınızda tanınmıyor' .

Kılavuza bakın .

Satır sonları yazmak için nasıl soru için, nota bakın burada . Temel olarak, farklı işletim sistemlerinin satır sonları için farklı kuralları vardır. Windows "\ r \ n" kullanır, unix tabanlı işletim sistemleri "\ n" kullanır. Bir kurala bağlı kalmalısınız ("\ n" yi seçtim) ve dosyanızı ikili modda açmalısınız ( fopen"w" değil, "wb" almalısınız).


Son satırım için "\ r \ n" yi "\ n" olarak değiştirdim ve çalıştı. Teşekkürler.
csonuryilmaz

şimdi benim kod hem kullanır "ve 'de bozuyor
Bay PizzaGuy

Aslında, "" kullanırken \ n'nin vurgulandığını ancak '' kullanırken vurgulandığını fark edebilirsiniz. (Bu, eğer editörünüz sözdizimi vurgulama kullanıyorsa benimki Sublime Text 3)
DarkVeneno

68

PHP_EOLHangi çıkışları \r\nveya \nişletim sistemine bağlı olarak kullanın .


4
Başınızı belaya sokmayın \n, dosyayı belirli bir işletim sisteminde açmak istemediğiniz sürece kullanın - öyleyse, PHP'yi çalıştırdığınız işletim sistemini değil, bu işletim sisteminin satırsonu kombinasyonunu kullanın ( PHP_EOL).
Alix Axel

60

PHP_EOL, PHP 4.3.10 ve PHP 5.0.2'den beri PHP'de önceden tanımlanmış bir sabittir. Manuel gönderiye bakın :

Bunu kullanmak, platformlar arası geliştirmelerde ekstra kodlamadan tasarruf etmenizi sağlar.

IE.

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

Bunu iki kez döngüye sokarsanız, 'bir dosya' içinde görürsünüz:

some data
some data

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.