خطای Internal Server هنگام استفاده از file_get_contents
سلام
یک قطعه کد نوشتم روی لوکال کار میکنه ولی روی هاست که اجرا میکنم خطای Internal Server Error میده ):
این کد هست:
include_once('simple_html_dom.php');
for ($i=1;$i<=500000;$i++){ /*3651800527*/
$url = 'http://mysite.com/post:'.$i;
$file_headers = @get_headers($url);
if($file_headers[0] == 'HTTP/1.1 404 Not Found') {
$exists = false;
}
else {
$exists = true;
}
if($exists){
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 10);
$str = curl_exec($curl);
curl_close($curl);
$txt= str_get_html($str);
foreach($txt->find('div[id=vposttext]') as $article) {
file_put_contents('w/'.$i.'.txt' , $article->plaintext);
break;
}
$txt->clear();
}
}
echo 'Finish!';
همون طور که مشخص هست در کد از یک کلاس استفاده کردم که از این لینک میشه دانلودش کرد: http://sourceforge.net/projects/simplehtmldom/
البته چک کردن کلاس ضروری نیست چون خودم ک کلاس رو چک کردم مشکل از file_get_contents که داخل کلاس استفاده شده!
نقل قول: خطای Internal Server هنگام استفاده از file_get_contents
نقل قول: خطای Internal Server هنگام استفاده از file_get_contents
ممنون از پاسختون (:
این چند روز در stackoverflow و سایت های مشابه زیاد جستجو کردم در کد هم تغییرات زیادی برحسب لینک ها اعمال کردم ولی متاسفانه تا الان هیچ کدوم جواب نداده ):
نقل قول: خطای Internal Server هنگام استفاده از file_get_contents
شما هیچ حا file_get_contents ندارین که میگین مشکل از اونه ،اگه منظورتون file_put_contents هست که احتمالا دارین اشتباه میکنید اما میتونید از fopen و fwrite استفاده کنید و ببینید همون خطا را میگیرین یا نه. اما به نظرم مشکل از اون نیست و باید trace کنین (خط به خط بررسی کنید) کدتون را.
نقل قول: خطای Internal Server هنگام استفاده از file_get_contents
ممنون، ممکنه از تنظیمات php سرور باشه؟
نقل قول: خطای Internal Server هنگام استفاده از file_get_contents
بخش ذخیره فایل رو با fwrite و fopen نوشتم باز هم خطای قبلی رخ داد.
if($exists){
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_FRESH_CONNECT, TRUE);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 100000000000000);
$str = curl_exec($curl);
curl_close($curl);
$txt= str_get_html($str);
foreach($txt->find('div[id=vposttext]') as $article) {
//file_put_contents('w/'.$i.'.txt' , $article->plaintext);
$file = fopen('w/'.$i.'.txt',"w");
echo fwrite($file,$article->plaintext);
fclose($file);
break;
}
$txt->clear();
}
نقل قول: خطای Internal Server هنگام استفاده از file_get_contents
دوست عزیز خطای Internal Server Error خیلی خطای کلی هست و عموما مربوط به وب سرور هستش ،شما باید log های وب سرور (برای شما آپاچی احتمالا) را بررسی کنید تا بفهمین دقیقا مشکل چیه یا خط به خط بررسی کنی ببینی کجا خطا میده.
نقل قول: خطای Internal Server هنگام استفاده از file_get_contents
پیشنهاد میکنم برای Trace بخش ذخیره و بخش گرفتن اطلاعات را جدا کنید و اول بخش گرفتن را چک کنید اگر مشکل نداشت بعد ذخیره را بنویسید .
ولی حدسی که خودم میزنم شاید بخاطر « false » بودن مقدار allow_url_fopen باشد . ( البته بازم باید با CURL جواب بده ! )
نقل قول: خطای Internal Server هنگام استفاده از file_get_contents
اول یک phpinfo بگیر ببین چه خبره تو تنظیمات , بعد برو سراغ خطا یابی !!!
بعد اینکه فایل داخل پروژه خودت رو میگیری ؟ یا فایل خارجی هستش ؟
بعضی مواقع که سرورهای مقابل agent های غیر کاربر رو بلاک میکنن از این خطاها زیاد میگیری ...
نقل قول: خطای Internal Server هنگام استفاده از file_get_contents
نقل قول:
نوشته شده توسط
Unique
دوست عزیز خطای Internal Server Error خیلی خطای کلی هست و عموما مربوط به وب سرور هستش ،شما باید log های وب سرور (برای شما آپاچی احتمالا) را بررسی کنید تا بفهمین دقیقا مشکل چیه یا خط به خط بررسی کنی ببینی کجا خطا میده.
ممنون، این بار ک تست گرفتم همزمان لاگ ها رو چک میکنم.
نقل قول:
نوشته شده توسط
us1234
پیشنهاد میکنم برای Trace بخش ذخیره و بخش گرفتن اطلاعات را جدا کنید و اول بخش گرفتن را چک کنید اگر مشکل نداشت بعد ذخیره را بنویسید .
ولی حدسی که خودم میزنم شاید بخاطر « false » بودن مقدار allow_url_fopen باشد . ( البته بازم باید با CURL جواب بده ! )
هر دوتا رو جدا جدا تست گرفتم درست هستن ولی باهم گیر میکنه :دی
allow_url_fopen هم true هست البته همون طور که گفتید باز با curl باید جواب میداد!
نقل قول:
نوشته شده توسط
m.esmaeilzadeh
اول یک phpinfo بگیر ببین چه خبره تو تنظیمات , بعد برو سراغ خطا یابی !!!
بعد اینکه فایل داخل پروژه خودت رو میگیری ؟ یا فایل خارجی هستش ؟
بعضی مواقع که سرورهای مقابل agent های غیر کاربر رو بلاک میکنن از این خطاها زیاد میگیری ...
فایل خارجی هست، این احتمال میگید باهاتون موافقم اما اگر سرور مقصد بلاک میکنه چرا با رفرش صفحه دوباره عملیات شروع میشه؟
نقل قول: خطای Internal Server هنگام استفاده از file_get_contents
نقل قول:
فایل خارجی هست، این احتمال میگید باهاتون موافقم اما اگر سرور مقصد بلاک میکنه چرا با رفرش صفحه دوباره عملیات شروع میشه؟
عملیات چی شروع میشه ؟
شاید چون سرور شما مقدار timeout برای به آخر رسیدن روند اجراش زیاده تا آخر این زمان مدام فکر میکنه !!!
چون وقتی بلاک میکنه سریع برنامه شما به اتمام نمیرسه و مدام فکر میکنه و سرور پردازش داره ....
تو جستجو گرهای خبری و بولتن سازها زیاد سر این موضوع به مشکل خورده بودم که رفع شدن !!!
نقل قول: خطای Internal Server هنگام استفاده از file_get_contents
همین عملیات موجود در کد پست اول!