Mailinglisten-Archive |
Hi.
Prüf mal den Header der Fehlerseite. Wahrscheinlich sendet die einen
503. Und möglicherweise wartet file_get_contents() in diesem Fall nicht
auf die HTML-Daten oder gibt sie nicht zurück.
Beste Grüße,
Thomas
--
Thomas Koudela
Programmierdienstleistungen von A bis Web
Mozartstraße 6
D-45529 Hattingen
(02324) 392320
www.koudela.net
Am Donnerstag, den 16.06.2011, 17:23 +0200 schrieb Manuel Görlich:
> 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