2017-06-01 140 views
0

php腳本在屏幕上顯示結果,但不會將結果導出到文本文件。做php c:\myscript.php > output.txt的作品,但不包含換行符(而不是它在屏幕上的顯示方式)。將php腳本結果寫入文本文件

我在這裏錯過了將結果導出到文本文件?

與命令行上屏的工作原理腳本:

<?php 

$list1 = array('a1', 'a2', 'a3'); 
$list2 = array('b1', 'b2',); 
$list3 = array('c1', 'c2', 'c3'); 

foreach ($list1 as $i) { 
    foreach ($list2 as $j) { 
     if ($j == $i) { continue; } 
     foreach ($list3 as $k) { 
      if ($k == $j) { continue; } 
      if ($k == $i) { continue; } 
      echo "$i$j$k\n"; 
     } 
    } 
} 

?> 

我試圖在最後插入此,但得到的錯誤。

$sListText = file_get_contents("output.txt"); 
echo nl2br($sListText); 

我想這一點,讓空文本文件:

$output = null; 
foreach.... 
file_put_contents("output.txt", $output, FILE_APPEND); 

回答

1

的Linux計算機php myscript.php > output.txt工作正常,換行,您使用窗戶,所以你必須改變

echo "$i$j$k\n"; 

echo "$i$j$k\r\n"; 

希望它能幫助。

+0

解決了第一次嘗試。不錯,乾淨! – user3026965

1

file_get_contents()得到一個文件作爲字符串的內容,所以它沒有用,如果你想寫什麼文件。

$file = fopen('output.txt', 'w'); 
//do your stuff here 
fwrite($file, $output); 
fclose($file); 

僅供參考 - 這將覆蓋output.txt文件中的所有現有數據。

它也很重要,需要注意的是,你實際上需要把一些在$輸出變量,所以這行echo "$i$j$k\n";,需要改變以$output .= "$i$j$k\n";

+0

我試着按建議,但得到錯誤:fclose <>期望參數1爲資源,null給出。 (對不起,如果我錯過了一個明顯的,我是新來的。) – user3026965

+0

我的不好,修正,只是有錯誤的變量名稱在那裏。 – Enstage

+0

作品!在第2行添加了'$ output = null;';插入你建議的3行;改爲你建議的'$ output。=「$ i $ j $ k \ r \ n」;' – user3026965