Frage

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

Ich benutze Curl bei meinem Projekt. Ich erhalte HTTP -Code von Websites. Aber wenn ich "Asdasd" ($ url = "asdasd") versuche, ist der zurückgegebene HTTP -Code 200. "Asdasd" ist jedoch keine Website. Warum ist HTTP -Code 200?

War es hilfreich?

Lösung

Möglicherweise möchten Sie den Rückgabewert aus überprüfen curl_exec Erste. Es heißt in das Handbuch:

Kehrt zurück TRUE auf Erfolg oder FALSE beim Versagen. Aber wenn die CURLOPT_RETURNTRANSFER Die Option ist festgelegt, das Ergebnis zum Erfolg zurückgibt. FALSE beim Versagen.

Zum curl_getinfo Da ist ein Randnotiz:

Die von dieser Funktion gesammelten Informationen werden aufbewahrt, wenn das Griff wiederverwendet wird. Dies bedeutet, dass die vorherigen Informationen zurückgegeben werden, wenn eine Statistik nicht intern durch diese Funktion außer Kraft gesetzt wird.

Damit HTTP 200 möglicherweise das Ergebnis eines früheren Curl -Aufrufs sein.

Andere Tipps

Ein weiterer möglicher Fehler kann auftreten, wenn Sie sich in Lokal entwickeln und benutzerdefinierte verwaltete DNS -Dienste verwenden. Dann können Sie wahrscheinlich einige verwaltete Fehlerseiten wie Opendns abrufen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top