Mailinglisten-Archive |
Guten Tag, ich wollte mir mithilfe von PHP ein kleines Script schreiben welche mir den Online-Status eines Woltlab Burning Boards via "notify-send" meldet. Nun gibt es 3 Möglichkeiten: 1. Das Board ist online. 2. Das Board ist offline. 3. Das WBB wirft einen Fatal Error. Da im 3. Fall eine Seite mit genaueren Informationen zum Fehler angezeigt wird wobei der Titel der Seite immer dem Schema "Fatal error: $fehlermeldung" entspricht sollte die unterscheidung der verschiedenen Fällr ganz einfach sein. Ist die Seite erreichbar und der Titel entspricht nicht dem "Fatal error"-Schema ->1. Fall Ist die Seite erreichbar und der Titel ENTSPRICHT dem "Fatal error"-Schema -> 2. Fall Ist die Seite nicht erreichbar -> 3. Fall Nun dachte ich mir das das ganz via file_get_contents(), preg_match() schnell gelöst sei also habe ich mir folgendes Script geschrieben: ----Schnipp---- <?php $url = 'http://www.example.com/'; $content = @file_get_contents( $url ); if( $content !== false ) { if( preg_match( '{<title>Fatal error:\W.+</title>}', $content, $matches ) != 0 ) exec( 'notify-send -u normal "WBB Notifyer" "' . $url . ' meldet:' . strip_tags( $matches[0] ) . '"' ); } else { exec( 'notify-send -u critical "WBB Notifyer" "' . $url . ' ist offline!"' ); } ?> ----Schnapp---- Das ganze soll dann via Cronjob in regelmässigen abständen ausgeführt werden. Nun bekomme ich aber im 3. Fall immer die Meldung "WBB Notifyer: http://www.example.com/ ist offline!" und file_get_contents() wirft ein Warning es hätte ein "HTTP/1.0 503 Service Unavailable" empfangen. Im Browser ist die Seite allerdings erreichbar und mir wird die Fehlerseite des WBB angezeigt. Im 1. Fall funktioniert allerdings alles wunderbar genauso wie im 2. Das verwirrt mich nun etwas und ich hoffe einer von euch kann mich evtl. über dieses Verhalten aufklären. Mfg Manuel P.S.: Ich hoffe ich habe nicht zu wirr geschrieben ich habe versucht alles so genau wie möglich zu erklären :)
php::bar PHP Wiki - Listenarchive