2014-07-05 55 views
1

由於某些原因,我使用的代碼\ n打破了這一行,不起作用。PHP Line Feeds「 n」不保存

它輸出沒有斷線。

  $file = "availables.txt"; 
      $current .= $test."\n"; 
      file_put_contents($file, $current); 

我不知道什麼是錯的,但我讀了使用單引號(')不工作,我必須用雙引號(「),這是我使用的是什麼。

我真的找不到很多,但我確信這只是一個簡單的問題:)

+1

您嘗試過「\ r \ n」嗎? – szymanskilukasz

+6

'$ test。 PHP_EOL;'...什麼操作系統? – Emissary

+0

使用「\ r \ n」工作!非常感謝!對不起,有點新:) – user3807836

回答

2

正如在評論這個問題是在選擇平臺的結束符號的正確路線一筆帶過。

核心常量PHP_EOL將爲您執行此操作,允許您創建便攜式代碼。

這個平臺的正確的'行尾'符號。自PHP 4.3.10和PHP 5.0.2起可用

1

確實,用單引號括起來的換行符不起作用,這只是因爲PHP會插入退格鍵\n加入到文件中。這導致ASCII/UTF-8十六進制代碼0x2F0x6E而不是簡單的0xA

使用"\n"或預定義的常數PHP_EOL,它將始終包含適用於您的平臺的正確換行組合,將解決此問題。

你在問題中發佈的代碼絕對沒有錯。那麼,怎麼了?我的猜測是你用來查看結果文件的程序。有些破損的Windows應用程序不會正確讀取換行符,因爲他們希望該文件使用Windows換行符(這是您可能知道的換行符和回車的組合)。

您正在使用PHP,在瀏覽器中輸出文件(不管是哪一個),他們會正確處理它。簡單地說:

<?php 

header("content-type: text/plain"); 
echo "hello\nworld"; 

你會看到一切都很好。

-2

你可以寫你的雙引號內變量這樣

$current .= "$test\n"; 
+1

您的文章不**提供答案! – undone