PHP - вывод в большой текстовый файл медленный и может вызвать ошибку сервера - PullRequest
0 голосов
/ 07 июня 2018

У меня есть код, который создает текстовый файл размером около 6,8 МБ.Когда я запускаю код на моей локальной машине, он не быстрый, но завершается.Когда я запускаю его на сервере, кажется, что он никогда не завершается, и как только я получил ошибку сервера (не записал фактический код ошибки, но это была довольно расплывчатая ошибка).

Мне интересно, может ли это быть проблемой с буфером?Код открывает файл один раз, вызывая вызовы функции fwrite () в цикле для генерации вывода.Было бы лучше написать некоторую информацию, закрыть файл, заново открыть его в режиме добавления и написать больше данных, затем закрыть его, открыть заново и так далее?Я открываю файл следующим образом:

// need a file handle to write to it:
$file_handle = fopen( $outFile, 'w') or
        die('Cannot open file:  ' . $outFile ); //implicitly creates file

и использую стандартные вызовы "fwrite ()":

// output this:
fwrite( $file_handle, $indent . $out . "\n" );

(где $ out - строка, созданная внутри цикла для созданиявывод, а $ indent - это всего 5 пробелов ...)

Когда все готово, файл закрывается:

fclose( $file_handle );

Это разочаровывает, так как код отлично работает в моей локальной среде,но не на сервере.

Я просто ищу совет и проверяю, сталкивался ли кто-нибудь еще с подобной проблемой.Прежде чем я потрачу время, чтобы разбить код и добавить закрытие и повторное открытие для добавления и т. Д., Было бы полезно знать, что я не лаю не на то дерево.

...