Seitenerreichbarkeit überprüfen

Read-Only-Modus

Das 01-Supportforum befindet sich im Read-Only-Modus. Es ist nicht mehr möglich sich zu registrieren, neue Themen zu erstellen oder auf bestehende Themen zu antworten.

Alle Inhalte stehen bis auf absehbare Zeit jedoch weiterhin lesend zur Verfügung.


Bei Fehlern oder Problemen mit PHP-Scripten von 01-Scripts.de erstellen Sie gerne einen Issue-Eintrag auf Github oder nehmen Sie per E-Mail Kontakt auf.

  • In diesem Tutorial möchte ich euch zeigen, wie man mit PHP überprüfen kann ob eine bestimmt Internetseite erreichbar ist, oder ob sie momentan offline ist.
    Die Erklärung zu den einzelnen Zeilen findet ihr im Quellcode!
    Der Code kann noch erweitert werden, so dass zum Beispiel Links aus einer Datenbank überprüft werden.



    Beachtet: Diese Methode funktioniert zwar bei vielen Seiten, jedoch nicht bei allen. Deshalb ist eine überprüfung der nicht funktionierenden Links ganz gut.
    Natürlich könnt ihr die Ausgabe bei Verbindung und ohne Verbindung anpassen!


    Das fertige Script kann ganz einfach aus dem Anhang heruntergeladen werden.


    Dieser Beitrag ist unter der Creative Commons Namensnennung 2.0 Deutschland lizensiert. Bearbeitung, Nutzung & Verbreitung ist ausdrücklich gestattet.

  • Bei mir funzten Zeile 7 und 9 nicht.


    echo "Verbindung mit <a href="$url" target="_blank">$host</a> war erfolgreich!";


    Habe die Gänsefüsschen weggemacht, nu funzt es ;)


    Danke für den Tip !

  • So:


    [PHP]<?PHP
    $host = "http://www.seite_zum_pruefen.de";


    $url = $host."/";
    $check = @fsockopen($host, 80); //über den Port 80 wird versucht eine Verbindung herzustellen


    if($check)
    {
    //Wenn die Verbindung erfolgreich war wird ein Link zur Seite ausgegeben
    echo "Verbindung mit <a href=\"".$url."\" target=\"_blank\">".$host."</a> war erfolgreich!";
    }
    else
    {
    //Wenn die Verbindung NICHT erfolgreich war wird ein Link mit einem Hinweis ausgegeben
    echo "Verbindung mit <a href=\"".$url."\" target=\"_blank\">".$host."</a> war <b>NICHT</b> erfolgreich!";
    }
    ?>[/PHP]

  • und wie sieht es aus webb jemand noch hinten an der url was dran stehen hat wie z.b.:

    Code
    1. http://www.01-scripts.de/board/thread.php?threadid=140


    jetzt mache ich es mit

    Code
    1. if(@fclose(@fopen($woher, "r")))


    aber das laden der seite dauert mir dann zulange

  • Zitat

    Original von Boss
    und wie sieht es aus webb jemand noch hinten an der url was dran stehen hat wie z.b.:

    Code
    1. http://www.01-scripts.de/board/thread.php?threadid=140


    jetzt mache ich es mit

    Code
    1. if(@fclose(@fopen($woher, "r")))


    aber das laden der seite dauert mir dann zulange


    Der hintere Teil einer URL muss imho vorher entfernt werden. Musst du aber grad mal ausprobieren.


    Das Laden einer Seite dauert immer sehr viel Länger, wenn du die Erreichbarkeit einer Seite überprüfen willst. Es empfiehlt sich deshalb solche Überprüfungen auch nicht auf einer normalen Seite einzubinden, sondern regelmäßig über einen Cronjob das ganze auszuführen und die Ergebnisse in einer Datenbank zu speichern.

  • Zitat

    Original von Boss
    und wie bekomme ich das was hinten ist weg ???


    Probier es dann mal damit:


    [PHP]<?PHP
    $host = "http://www.seite_zum_pruefen.de";


    $lh = strlen($host);


    if(strstr($host,".de"))
    {
    $lh2 = strlen(strstr($host,".de"));
    $l = $lh-$lh2+3;
    }
    elseif(strstr($host,".com"))
    {
    $lh2 = strlen(strstr($host,".com"));
    $l = $lh-$lh2+4;
    }


    $url = "http://".substr($host,0,$l); //http:// wird für die späteren Links angefügt
    $check = fsockopen($url, 80); //über den Port 80 wird versucht eine Verbindung herzustellen


    if($check)
    {
    //Wenn die Verbindung erfolgreich war wird ein Link zur Seite ausgegeben
    echo "Verbindung mit <a href=\"".$url."\" target=\"_blank\">".$host."</a> war erfolgreich!";
    }
    else
    {
    //Wenn die Verbindung NICHT erfolgreich war wird ein Link mit einem Hinweis ausgegeben
    echo "Verbindung mit <a href=\"".$url."\" target=\"_blank\">".$host."</a> war <b>NICHT</b> erfolgreich!";
    }
    ?>[/PHP]