سؤال

$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.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top