بعضی هاستها امکان انتقال فایل از سرور دیگر به سرور رو میبندن یا به شدت سرعت رو پایین میارن. بدلیل پیشگیری از leach کردن و انتقال فایل بین سروری.
همچنین در کانفیگ عمومی سرورها مقدار default_socket_timeout بر روی 60 هست که برای دریافت یک استریم نهایت 60 ثانیه هست. که وقتی امکان دانلود شما بر روی سرور محدود شده این مورد هم بیشتر طول خواهد کشید و نهایت error خواهد داشت
داکیومنت php برای حل این گونه مشکلات راهکاری داره که شاید مفید باشه
http://php.net/wrappers.http
در آخر توابع curl هم یه تست کنید. روی بیشتر هاستها که file_get_contents خطا داده تونسته دیتا رو برگردونه
$url='http://google.com/';
$ch=curl_init();
$timeout=5;
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$result=curl_exec($ch);
curl_close($ch);
echo $result;