2010-11-16 59 views
27
寫入文本文件時不工作

我有以下的測試腳本:線打破PHP

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

?> 

然而,當運行並打開usign記事本,數據在一行返回而不中斷的情況爲:

軟盤老爺車(瘋狂的盒子)尖尖 託(瘋狂的盒子)

這裏我不能找到「瘋狂的盒子」,但它的一個適當的字符真的很瘋狂的盒子。是什麼賦予了!

回答

33

如果你想打開Windows記事本文件,你必須使用Windows換行符:\r\n

+2

如果你在寫字板中打開它,它會應付'\ n'或'\ r \ n',就像許多其他編輯器一樣,但記事本很挑剔。 – Spudley 2010-11-16 16:00:16

51

最好是使用PHP_EOL。這是跨平臺的,所以它會爲PHP當前運行的平臺自動選擇正確的換行符。

$stringData = "Floppy Jalopy" . PHP_EOL; 

PHP Constants

+7

如果文件總是在腳本運行所在的同一平臺上使用,那麼只有使用「PHP_EOL」纔是「最好的」。根據我的經驗,大多數情況下,您創建的文件都要下載,通過電子郵件發送或稍後解析 - 所有需要具有*特定*換行符的文件,而不是腳本運行的平臺。 – AndreKR 2013-07-03 20:24:51

+0

@AndreKR:是的。 – 2013-07-03 20:48:49

+0

這似乎是最好的答案。 – 2017-03-12 11:48:34

1

您的代碼運行正常。

如果您在使用Windows,請使用Notepad2Notepad++。內置記事本無法應對Unix風格的行結尾。

0

。 PHP_EOL;將普遍工作

+0

這似乎是重複[這個現有的答案](http://stackoverflow.com/a/4196123)。 – Pang 2017-05-11 08:49:08