Сценарий php отображает результаты на экране, но не экспортирует результаты в текстовый файл. дела php c:\myscript.php > output.txt
работает, но не содержит разрывов строк (в отличие от способа отображения на экране).
Чего мне не хватает здесь, чтобы экспортировать результаты в текстовый файл?
Скрипт, который работает на экране с командной строкой:
<?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);
На машине linux php myscript.php > output.txt
работает нормально и с переносами строк, вы используете окна, поэтому вы должны изменить
echo "$i$j$k\n";
в
echo "$i$j$k\r\n";
Надеюсь, поможет.
file_get_contents()
получает содержимое файла в виде строки, поэтому бесполезно, если вы хотите что-то записать в файл.
$file = fopen('output.txt', 'w');
//do your stuff here
fwrite($file, $output);
fclose($file);
К вашему сведению — это перезапишет любые существующие данные в файле output.txt.
Также важно отметить, что вам действительно нужно поместить что-то в переменную $ output, поэтому эта строка echo "$i$j$k\n";
необходимо изменить на $output .= "$i$j$k\n";