200 رمز HTTP في سلاسل غير url
-
30-09-2019 - |
سؤال
$agent = "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)";
$ch=curl_init();
curl_setopt ($ch, CURLOPT_URL,$url );
curl_setopt($ch, CURLOPT_USERAGENT, $agent);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch,CURLOPT_VERBOSE,false);
curl_setopt($ch, CURLOPT_TIMEOUT, 5);
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch,CURLOPT_SSLVERSION,3);
curl_setopt($ch,CURLOPT_SSL_VERIFYHOST, FALSE);
$page=curl_exec($ch);
//echo curl_error($ch);
$httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
أنا أستخدم حليقة في مشروعي. أحصل على رمز HTTP لمواقع الويب. ولكن عندما أحاول "asdasd" ($ url = "asdasd") ، فإن رمز HTTP الذي تم إرجاعه هو 200. لكن "ASDASD" ليس موقع ويب. لماذا رمز HTTP هو 200؟
المحلول
قد ترغب في التحقق من قيمة الإرجاع من curl_exec
أول. يقول في الدليل:
عائدات
TRUE
على النجاح أوFALSE
على الفشل. ومع ذلك ، إذا كانCURLOPT_RETURNTRANSFER
تم تعيين الخيار ، وسيعود النتيجة على النجاح ،FALSE
على الفشل.
إلى عن على curl_getinfo
هناك ملاحظة جانبية:
يتم الاحتفاظ بالمعلومات التي تم جمعها بواسطة هذه الوظيفة إذا تم إعادة استخدام المقبض. هذا يعني أنه ما لم يتم تجاوز إحصاء داخليًا من خلال هذه الوظيفة ، يتم إرجاع المعلومات السابقة.
بحيث يكون HTTP 200 نتيجة لاستدعاء حليقة سابق.
نصائح أخرى
يمكن أن يحدث خطأ محتمل آخر إذا قمت بتطويرها في محلي واستخدمت خدمات DNS المخصصة المخصصة ، فربما يمكنك الحصول على بعض صفحات الأخطاء المدارة مثل Opendns.