Ich muss ein PHP-Skript erstellen, das erfolgreich überprüfen kann, ob eine Website derzeit online/noch aktiv ist.Überprüfen, ob eine Website mit einem PHP-Skript online ist
Ich habe eine Liste von rund 3000 Websites zu überprüfen, und ich möchte einen CRON-Job einrichten, um das Skript täglich auszuführen, um sicherzustellen, dass die Seiten noch aktiv sind.
Ich habe einige der Forschung getan und gebaut etwas mit diesem Beispiel:
<?php
if (isDomainAvailible('http://www.css-tricks.com'))
{
echo "Up and running!";
}
else
{
echo "Woops, nothing found there.";
}
//returns true, if domain is availible, false if not
function isDomainAvailible($domain)
{
//check, if a valid url is provided
if(!filter_var($domain, FILTER_VALIDATE_URL))
{
return false;
}
//initialize curl
$curlInit = curl_init($domain);
curl_setopt($curlInit,CURLOPT_CONNECTTIMEOUT,10);
curl_setopt($curlInit,CURLOPT_HEADER,true);
curl_setopt($curlInit,CURLOPT_NOBODY,true);
curl_setopt($curlInit,CURLOPT_RETURNTRANSFER,true);
//get answer
$response = curl_exec($curlInit);
curl_close($curlInit);
if ($response) return true;
return false;
}
?>
Aber es immer mal aus nach 300 oder so überprüft, wohl wissend, dass dies eine PHP-Ausführung Problem sein könnte, ich habe mich gefragt, ob es war eine bessere oder schnellere Methode, diese Websites zu überprüfen.
seine Arbeits script & dauerte 5 Sekunden auszuführen für die Überprüfung einzelner Websites. – Mohini
Ja, es ist ein funktionierendes Skript, aber 5 Sekunden pro Website, multipliziert mit über 3000 Seiten, bedeuten 250 Minuten, was ich nicht für eine machbare Lösung halte? – SNpn
Sie können die Leistung erhöhen, indem Sie die Funktion [multicurl] (http://www.php.net/manual/en/function.curl-multi-init.php) verwenden. Es ist ein bisschen schwierig, aus dem offiziellen Handbuch zu verstehen, wie man es richtig benutzt. Daher ist es besser, einen Multi-Curl-Wrapper wie [Rolling Curl Mini] (https://github.com/hindmost/rolling-curl-mini) zu verwenden (plug!). – hindmost