2010-11-16 17 views
27
metin dosyasına yazarken çalışmıyor kırmak

Ben aşağıdaki test komut:Hat PHP

ancak çalıştırıp sonucu ara vermeden, verileri tek satırda döndürülür usign Not Defteri açıldı
<?php 

$myFile = "testFile.txt"; 
$fh = fopen($myFile, 'w') or die("can't open file"); 
$stringData = "Floppy Jalopy\n"; 
fwrite($fh, $stringData); 
$stringData = "Pointy Pinto\n"; 
fwrite($fh, $stringData); 
fclose($fh); 

?> 

:

i 'çılgın kutu' ama onun a için uygun karakteri bulamıyor

Disket Jalopy (deli kutu) Pointy Pinto (deli kutu)

GERÇEK çılgın kutu. NELER VAR! Windows not defteri dosyayı açmak istiyorsanız

cevap

33

, Windows satır sonlarını kullanmalıdır: \r\n

+2

eğer Wordpad'de açarsanız, diğer editörlerin birçoğu gibi '\ n' veya' \ r \ n' ile başa çıkacaktır, ancak Notepad telaşlı olacaktır. – Spudley

51

O PHP_EOL kullanmak en iyisidir. Bu çapraz platformdur, bu yüzden PHP'nin şu anda üzerinde çalıştığı platform için doğru yeni karakter (ler) i otomatik olarak seçer.

$stringData = "Floppy Jalopy" . PHP_EOL; 

PHP Constants

+7

Dosyaların her zaman betiğinizin çalıştığı aynı platformda kullanılacaksa, PHP_EOL işlevini kullanmak için sadece "en iyisi". Deneyimimde çoğu zaman, indirilecek, e-postayla gönderilecek veya daha sonra ayrıştırılacak dosyalar oluşturduğunuzda, * spesifik * newline karakterine sahip dosyalara ihtiyaç duyduğunuz ve betiğin çalıştığı platformdan değil. – AndreKR

+0

@AndreKR: Doğru. –

+0

Bu en iyi cevap gibi görünüyor. –

1

Kodunuz iyi çalışır.

Windows'ta çalışıyorsanız, Notepad2 veya Notepad++ kullanın. Yerleşik Not Defteri, Unix stili satır sonlarıyla baş edemiyor.

0

. PHP_EOL; evrensel olarak çalışacaktır

+0

Bu [bu mevcut cevap] tekrarlanıyor gibi görünüyor (http://stackoverflow.com/a/4196123). – Pang