2017-06-01 144 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