PDA

View Full Version : سوال: ارور Connection timed out



hosein-faz
شنبه 09 اردیبهشت 1396, 19:20 عصر
با عرض سلام
بنده هنگامی که قطعه کد زیر رو در هاست اجرا میکنم :
<?php
$url= "https://www.google.com";
file_get_contents($url);
?>
با خطای زیر مواجه میشم:
Warning: file_get_contents(https://www.google.com): failed to open stream: Connection timed out
در صورتی که اگر همین کد رو در لوکال هاست اجرا کنم با هیچ مشکلی مواجه نخواهم شد.
دلیل این خطا چیست ؟!
ممنون میشم اگه راهنمایی کنید.

مهرداد سیف زاده
شنبه 09 اردیبهشت 1396, 22:35 عصر
بعضی هاست‌ها امکان انتقال فایل از سرور دیگر به سرور رو میبندن یا به شدت سرعت رو پایین میارن. بدلیل پیشگیری از 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;