Вероятно, самое простое решение - установить тайм-аут самостоятельно с помощью:
ini_set('default_socket_timeout', 60); // 60 secs
Конечно, если эти файлы большие, другой вариант - использовать file_get_contents () , так как вы можете указать ограничение размера файла. Вы не хотите присваивать это значение, так как более эффективно обернуть его так:
$limit = 64 * 1024; // 64 being the number of KB to limit your retrieval
md5(file_get_contents($url, false, null, 0, $limit ));
Теперь вы можете создавать MD5 из частей файла и не беспокоиться, если кто-то попытается отправить вам файл размером 2 ГБ. Конечно, имейте в виду, что это только MD5 для части файла, если что-то после этого изменится, это сломается. Вам вообще не нужно устанавливать ограничение на размер файла, просто попробуйте так:
ini_set('default_socket_timeout', 60); // 60 secs
md5(file_get_contents($url));