Скорее всего, удаленный поток иногда отключается или время ожидания истекло.
Также, как говорит @fab, возможно, файл, который вы пытаетесь загрузить, больше памяти вашего скрипта.
Вы должны начать регистрировать ошибки readfile()
возвращает, например, используя директиву error_log
php.ini .
Если это должно быть абсолютно надежно, я думаю, вам придется использовать что-то более изощренное, чем readfile()
, которое позволяет установить время ожидания (например, curl
или readfile
с параметрами контекста потока ).
После этого вы можете перехватывать любые ошибки, возникающие при загрузке, и вместо этого обслуживать локальный резервный документ. Этот документ может, например, быть текстовым файлом, содержащим сообщение «Ресурс XYZ не может быть загружен».