PDA

View Full Version : سوال: چطوری با کد php از سمت سرور تشخیص بدم که یه صفحه تو یه دامین دیگه وجود نداره (error 404)



se8820726
شنبه 29 مهر 1391, 19:29 عصر
سلام به تمام دوستان عزیز

آقا من یه کدی نوشتم که میره به آدرس یه دامین خارجی و یه سری اطلاعات رو از کد صفحه html ش در میاره
حالا اگر صفحه مورد نظر وجود نداشته باشه برنامه من error میده
یه کدی میخوام که وقتی یه صفحه ای رو درخواست میدم و error 404 not found که از سمت سرور اون دامین به سرور من میاد رو تشخیص بده و اون صفحه رو رد کنه بره سراغ یه صفحه دیگه

لطفا دوستان راهنمایی کنند

Unique
یک شنبه 30 مهر 1391, 02:14 صبح
اگه دارین با curl کار میکنید میتونید response کد را بگیرین و چک کنید که چی هستش !

ifireir
یک شنبه 30 مهر 1391, 08:10 صبح
میتونین از تابع header تو php استفاده کنید
و یا اینکه با استفاده از curl هدر صفحه رو هم بدست بیارین و پردازش رو روش انجام بدید
تو نت مثال های زیادی هست
موفق باشید

se8820726
یک شنبه 30 مهر 1391, 20:50 عصر
از راهنمایی دوستان خیلی ممنون
جوابی که من بهش رسیدم:


$url="http://url/";
set_time_limit ( 120 );
$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, 10);
$data = curl_exec ($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
$ok = ($httpCode != 404 ? 1 : 0);
set_time_limit (ini_get('max_execution_time'));
curl_close ($ch);

if ($ok==0){
//page not found
}
elseif ($ok==1) {
//page found
}

eshpilen
دوشنبه 01 آبان 1391, 08:36 صبح
البته احتمالا فقط 404 نیست که مورد نظر شما نیست.
خیلی کدهای وضعیت دیگه هستن که یک پاسخ عادی محسوب نمیشن یا خطا هستن.
بنابراین بجای اینکه چک کنید کد وضعیت پاسخ 404 نباشه بهتره چک کنید که کد وضعیت پاسخ 200 باشه؛ در نتیجه هرچیزی غیر از کد وضعیت 200 غیرقابل قبول میشه.