2017-02-17 2 views
0

Я хотел бы сгенерировать csv, используя PHP, но я хочу загрузить файл позже, используя file_get_contents, когда он будет завершен. Есть ли способ проверить, завершен ли файл?PHP: как проверить, завершен ли файл?

+0

Вы можете написать запись в базе данных при создании файла завершается и только скачивать файлы из/через базу данных. – jeroen

+0

Если вы хотите вызвать его с помощью кнопки, то есть file_exists() вариант? – Seregmir

+0

Не описывая проблему подробно и показывая код и как вы это делаете, не представляется возможным дать вам конкретный ответ. Когда вы создаете файл, вам не нужно его загружать, потому что он уже на сервере, я думаю. Поскольку PHP не работает async по умолчанию, файл готов, когда 'file_get_contents()' закончен. Ваш вопрос непонятен. – DanFromGermany

ответ

0

Это нормально, но то, как вы это делаете, неверно (по крайней мере, «совсем не правильно»).

fgets() возвращает false, если конец файла достигнут, поэтому вы должны протестировать вместо false. Он работает для вас, потому что вы используете «простой» оператор равенства (==), который будет иметь значение null в false, сравнивая с логическим.

Возвращает строку длиной до 1 байта, считанную из файла, на который указывает дескриптор. Если в указателе файла больше нет данных, возвращается FALSE.

При возникновении ошибки возвращается FALSE. Это означает, что он должен выглядеть следующим образом:

while (($c = fgets($f)) !== false) { 
    doSomethingWith($c); 
} 
+0

В чем разница между простое использование 'file_get_contents()' до его завершения и вашего решения? – DanFromGermany

Смежные вопросы