انجمنهای فارسی اوبونتو
کمک و پشتیبانی => برنامهسازی => نویسنده: rahmani در 05 شهریور 1392، 08:50 قظ
-
سلام علیکم
شمار زیادی از شابک های کتاب در یک جدول پایگاه داده ذخیره شده است. htttp://isbndb.com (http://htttp://isbndb.com) یک پایگاه اینترنتی است که وقتی یک شابک را به آن میدهیم یکی از خصوصیات کلی کتاب را به ما برمی گرداند. برنامه ای شابک را از پایگاه داده می خواند و با استفاده از code زیر $path = "http://isbndb.com/search/all?query=".$ISBN;
$html = file_get_html($path);
آن را در پایگاه شابک جستجو میکند.
خطای زیر هرازگاهی مثلا بعد از این که برنامه چند record را هم پردازش کرده باعث توقف برنامه می شود!؟ من فکر می کنم به خاطر قطع لحظه ای اتصال رایانه به اینترنت باشد
بفرمایید با این خطا چکار کنم؟
Warning: file_get_contents(http://isbndb.com/search/all?query=3540691995) [function.file-get-contents]:
failed to open stream: HTTP request failed! HTTP/1.1 403 Forbidden in /var/www/projects/category/simple_html_dom.php on line 76
-
من حدث میزنم مشکل از سرور سایت هستش
-
من یک 403 Forbidden می بینم که نشون میده دسترسی به سایت ممکن نیست و احتمالا دلیلش هم تحریم است
-
من یک 403 Forbidden می بینم که نشون میده دسترسی به سایت ممکن نیست و احتمالا دلیلش هم تحریم است
گمان نمی کنم دلیلش این باشد زیرا برنامه بیش از ۳۴۰۰۰ record دیگر را از همین طریق پردازش کرده و پاسخ هم گرقته است و در ضمن وقتی برنامه را refresh می کنم همین record را هم پردازش می کند. چیزی که هست من می خواهم برنامه بخاطر خطا متوقف نشود و پیوسته به کار خود ادامه دهد.
برای اطمینان شما می توانید همین مقدار شابک 3540691995 را در سایت سرور http://isbndb.com (http://isbndb.com) وارد کرده و پاسخ آن را مشاهده فرمایید.
متشکرم.
-
راحت ترین راه شاید این باشد که برنامهای که file_get_contents درون آن استفاده شده است از بیرون فراخوانی شود
مثلا اگر در لینوکس هستید اسکریپتی به صورت زیر بنویسید و از بیرون id را به فایل php بدهید. و درون اسکریپت فقط اطلاعات همین id را بگیرید
بهتره روی php که استفاده میکنید coderewrite را فعال کنید که لازم نباشد با "?" پارامتر را به getBookData.php بدهید چون ? در خط فرمان معنی دارد.
#!/bin/bash
for i in {1..9}
do
wget "http://localhost/getBookData.php/id/$i"
done