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());
}
?>
Snippetdetails
- hinzugefügt: 25.11.2008
- aktualisiert: 25.11.2008
- Snippet herunterladen
Das Hinzufügen von Kommentaren ist für dieses Snippet nicht erlaubt.