2014-09-03 69 views
1

我想用PHP編寫一個文本文件。每個$result字符串必須在txt文件的新行中,但是當我輸入時,所有$result字符串都在同一行上。問題是什麼 ?如何在使用PHP的文本文件中寫入新行?

這裏是我的代碼:

$result=date("Y.m.d").'!'.$_POST['name'].'!'.$_POST['price'].'!'.$selectedGroup."\n"; 
file_put_contents('data.txt', $result,FILE_APPEND) 

回答

3

使用PHP_EOL預定義的常量:

file_put_contents('data.txt', $result . PHP_EOL, FILE_APPEND); 

manual

PHP_EOL(串)

此平臺的正確'行尾'符號。

可用,因爲PHP 4.3.10和5.0.2 PHP

要測試你的輸入,你可以嘗試到輸出文件的數據與file()(應適當確定線分離):

print_r(file('data.txt')); 

如果它包含多個元素,那麼你的行是分開的。

+0

看來他已經在使用「\ n」 – 2014-09-03 09:31:13

+0

他的問題,我相信,在於他對結果進行驗證,而不是實際的一代吧。 – Slavic 2014-09-03 09:34:53

+0

它正在工作,但是它在文件的第一行創建了一個空行。如何避免這種情況? – Montoolivo 2014-09-03 09:40:01

1

的問題是,你的編輯器(Windows記事本?)不把\n作爲新行。

有沒有一種新的線

windows: \r\n 

linux/unix: \n 

mac: \r 
+0

我的編輯器是Notepad ++。 – Montoolivo 2014-09-03 09:34:47

+0

@Montoolivo然後應該有選項來設置換行符類型。 – xdazz 2014-09-03 09:38:48

1

你是如何驗證結果?你在編輯器中打開文件嗎?如果您是在Windows上執行此操作,請注意某些編輯器會將「\ r \ n」顯示爲新行,而將「\ n」視爲空格或僅僅忽略它。

+0

如果我把「\ r \ n」而不是「\ n」表示它正在工作。 – Montoolivo 2014-09-03 09:44:13

+0

您需要知道生成文件的目標受衆是誰。您可能需要使用Unix版本「\ n」,而不是Windows版本的換行符。 – Slavic 2014-09-03 09:49:50

相關問題