Pregunta

$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);

Estoy usando rizo en mi proyecto. Me estoy poniendo CÓDIGO HTTP de sitios web. Pero cuando intento "asdasd" ($ url = "asdasd"), volvió código HTTP es 200. Pero "asdasd" no es un sitio web. ¿Por qué código HTTP es 200?

¿Fue útil?

Solución

Es posible que desee comprobar el valor de retorno de curl_exec primero. Se dice en el manual de :

  

Devuelve TRUE en el éxito o FALSE en caso de fallo. Sin embargo, si el CURLOPT_RETURNTRANSFER es seleccionada, esta función devuelve el resultado en caso de éxito, FALSE en caso de fallo.

Para curl_getinfo hay un nota al margen :

  

La información recogida por esta función se mantiene si el mango es reutilizada. Esto significa que a menos que una estadística es reemplazado internamente por esta función, la información anterior se devuelve.

Para que HTTP 200 podría ser el resultado de una invocación cURL anterior.

Otros consejos

Otro posible error puede ocurrir si se desarrollan en el local y se utilizan servicios de DNS personalizadas administradas, entonces es probable que pueda obtener algunas páginas de error administrados como OpenDNS está haciendo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top