Ich versuche, ein PHP-Skript, das den HTTP-Status einer Website so schnell wie möglich überprüfen wird.Etwas schneller als get_headers()
Ich verwende derzeit get_headers() und es in einer Schleife von 200 zufälligen URLs von MySQL-Datenbank ausführen.
Um alle 200 zu überprüfen - es dauert durchschnittlich 2m 48s.
Kann ich irgendetwas (viel) schneller machen?
(Ich weiß über fsockopen - Es kann Port 80 auf 200 Seiten in 20s überprüfen - aber es ist nicht das gleiche wie die Anfrage des HTTP-Status-Code, weil der Server auf den Port reagiert - aber möglicherweise nicht laden Websites usw.) Hier
ist der Code ..
<?php
function get_httpcode($url) {
$headers = get_headers($url, 0);
// Return http status code
return substr($headers[0], 9, 3);
}
###
## Grab task and execute it
###
// Loop through task
while($data = mysql_fetch_assoc($sql)):
$result = get_httpcode('http://'.$data['url']);
echo $data['url'].' = '.$result.'<br/>';
endwhile;
?>
Hallo, ich habe auch versucht mit cURL - wie der Code, den Sie gebucht haben. Aber es ist dasselbe, tatsächlich etwas länger als get_headers(); – Clarkey
Versuchen Sie multi Anfrage, wie ich Link oben gebe. Zum Beispiel 10 Anfrage pro Zeit – safarov
+1 Nice one! Ich wusste nicht, dass die Curl-Erweiterung Anfragen parallel verarbeiten könnte. – nnichols