چطوری میشه برنامه ای نوشت که

- 1 هفته پیش
توسط سید محمد حسین موسوی آپدیت شد
masoud ( 6070 تجربه )
1 هفته پیش

چطوری میشه برنامه ای نوشت که اگر اینترنت قطع شد یا ارور داد بگیم از ادامه کار برو جلو (یعنی از اول شروع نکنه به لود شدن یا مثلا از اول دانلود نکن از اونجایی که قطع شد شروع به دانلود کن)

علی بیات ( 48327 تجربه )
1 هفته پیش

اولا باید کانکشن اینترنت رو با یه تابع چک کنی

function check_internet_connection($sCheckHost = 'www.google.com') 
{
    return (bool) @fsockopen($sCheckHost, 80);
}

if (check_internet_connection()) {
    echo "online";
}
else {
    echo "offline";
}

بعد برای دانلود با قابلیت resume باید Headers هارو به درستی تنظیم کنی٬ چند مثال در زیر:
https://www.media-division.com/php-download-script-with-resume-option/
https://stackoverflow.com/questions/16267792/download-with-resume
https://gist.github.com/fzerorubigd/3899077

masoud ( 6070 تجربه )
1 هفته پیش

@ali.bayat

من می خواهم وقتی صفحه لود شد بره و یکسری اطلاعات رو از سایتها بگیره و دیتابیس ذخیره کنه اگه حین دریافت اطلاعات اینترنت قطع شد بیاید از وسط راه اطلاعات رو بگیره منظورم اینه؟

سید محمد حسین موسوی ( 5778 تجربه )
1 هفته پیش

چون می دونم سوالت وابسته است به سوال آپارت و کراول کردن جواب رو مرتبط با همون ها می دم
وقتی داری شروع می کنی لینک 1 رو می خونی و می ری جلو، هر موقع که کارت با لینک 1 تموم شد crawl کردن با موفقیت انجام شد و مطمئن شدی همه چی درسته، لینک 1 رو از اون لیستت حذف می کنی. حالا مهم نیست این لینک تو توی فایله یا تو یه جدول تو دیتابیس.
بعد می ری سراغ لینک بعدی و بازهم اگر کارت با این مورد هم تموم شد لینک 2 رو هم حذف می کنی و در انتها شما 100 تا لینک داشتی و کارت باهاشون تموم شده و الان تو فایل مورد نظر یا جدول دیتابیست دیگه هیچ لینکی باقی نمونده.
اینکار چنتا مزیت داره. اول اینکه به مشکل اولت حل می شه و اگر برنامه ات هم به مشکل بر بخوره، لینک هایی که کارشون تموم شده دیگه تو فایل یا جدول دیتابیست نیست که دوباره کاری بشه.
دومین مزیتی که داره اینه که اگر لینکی به خطا خورد و به هر دلیلی اون شرایطی که شما مد نظرته رو پاس نکرد، از اون لیست حذف نمی شه و می ری سراغ لینک بعدی. اینجا این لینکه باقی مونده و می تونی بگی دوباره امتحان کنه یا بعدا امتحان کنه یا حتی اگر برنامه ات باز و بسته هم شد این لینکه دوباره بررسی می شه.

برای ارسال پاسخ باید وارد سایت شوید