Du bist hier: StartPHPScripts › Server anpingenDieses Snippet kommentieren

Server anpingen (mit Cache)

Dieses Script pingt einen Server an und prüft, ob dieser Antwortet. Die Antwort wird dann für 5 Minuten gecached. In Abhängigkeit vom Status wird ein Bild an den Client gesendet.

<?php

$images = array(
    0 => 'img/s_offline.jpg',
    1 => 'img/s_online.jpg'
);

// Haben wir noch ein gecachtes Ergebnis?

$cacheStatus = file('server.cache');
list($status,$fetched) = explode(':', trim($cacheStatus[0]));

// Falls nicht, Status neu ermitteln

if ( $fetched < time() - 5*60 ) {
    $status = fsockopen('SERVER', 80, $errno, $errstr, 5);
}

// resource in integer umwandeln

$status = $status ? 1 : 0;

// Bild senden

header('Content-Type: image/jpeg'); // IE mag image/jpg nicht!
header('X-Powered-By: PHP'); // Genaue Versionsnummer verstecken
header('X-Updated: '.strftime('%H:%M:%S', $fetched)); // Debugging

// Kein clientseitiges Cachen bitte

header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Cache-Control: no-cache');
header('Pragma: no-cache');

// Datei senden

header('Content-Length: '.filesize($images[$status]));
readfile($images[$status]);

// Cachen

if ( $fetched < time() - 5*60 ) {
    file_put_contents('server.cache', $status.':'.time());
}

?>

Das Hinzufügen von Kommentaren ist für dieses Snippet nicht erlaubt.