file_put_contents ve yeni bir line yardım

6 Cevap

Ben yazıyorum bir dosya var ve ben bile bir satır karakteri sonra, yeni bir satırda sonraki girdiyi eklemek file_put_contents alınamıyor. Ne eksik? Ben bir windows makinede değilim.

$file = 'test.txt';
$message = "test\n\n";
file_put_contents($file, $message, FILE_APPEND);

6 Cevap

nasıl $file içeriğini görmektesiniz? Not Defteri'ni kullanarak konum eğer göremiyorum \n.

denemek

$file = 'test.txt';
$message = "test".PHP_EOL;
file_put_contents($file, $message, FILE_APPEND);

veya

$file = 'test.txt';
$message = "test\r\n";
file_put_contents($file, $message, FILE_APPEND);

Eğer yeni bir satır yazmak sonra satırın sonunu tanımlayan çünkü PHP_EOL için size yeni bir satır görüyor olabilir. Yeni içerik metin dosyasının son satırına eklenir sonra bu nedenle yeni hattın sadece yapılır.

bu gibi okumalısınız:

$file = 'test.txt';
$message = 'some message that should appear on the last line of test.txt';
file_put_contents($file, PHP_EOL . $message, FILE_APPEND);

Sadece normal bir yeni hat vermek ve işe yarıyor

$file = 'test.txt';
$message = "test
";
file_put_contents($file, $message, FILE_APPEND);

Öncelikle "yeni hat" karakteri hakkında bir şeyler okudum. Her operasyon sistems üzerinde farklı ... LF, CR, CR + LF var .... mü burada bir görünüm http://en.wikipedia.org/wiki/Newline

On windows systems you need CR+LF ("\r\n") as Mathieu already said. On linux, only LF is needed ("\n")

Ama, emin olmak için, PHP_EOL kullanın.

Dosyaları kullanarak, muhtemelen yolu ve dizin ayracı hakkında daha fazla bilgi gerekir .. Onlar da farklıdır. Yerine eğik çizgi veya Tersbölünün DIRECTORY_SEPARATOR kullanın ;)

Yerine bir dize daha bir dizi olarak file_put_contents için ikinci argüman geçen olanlar için, aynı zamanda son dizi elemanı olarak PHP_EOL koymak için çalışır:

file_put_contents($file, array('value 1', 'value 2', PHP_EOL), FILE_APPEND);