Как определить конец с помощью file_put_contents () в php? - PullRequest
5 голосов
/ 22 мая 2011

В PHP я напишу (создаю) файл, используя file_put_contents($filename, $data);
Это нормально, но я хочу обнаружить конечное событие процесса.

В данный момент страница показывает статус загрузки.
Это в настоящее время так, как я могу знать, финиш или нет.

Я хочу определить с помощью кода.

Ответы [ 3 ]

9 голосов
/ 22 мая 2011

Это блокирующий вызов ввода / вывода, поэтому он завершается, когда возвращается вызов функции.Возвращаемое значение - количество записанных байтов (при успешном завершении).

5 голосов
/ 22 мая 2011

Он удерживает все до тех пор, пока не закончится

Так что вы можете использовать что-то вроде этого, чтобы определить, когда закончится запись файла.

echo "The file's contents are now being written, please wait.";
file_put_contents($filename, $data);
echo "The file's contents have been written.";
3 голосов
/ 22 мая 2011

Сначала получите заголовок Content-Length из удаленного местоположения. Вы можете использовать get_headers , чтобы сделать это. Вот так:

$headers = get_headers($url, 1);
echo "To download: " . $headers['Content-Length'] . " bytes.<br />";
...