phpbar.de logo

Mailinglisten-Archive

[php] php Nachrichtensammlung, Band 96, Eintrag 3

[php] php Nachrichtensammlung, Band 96, Eintrag 3

Manuel Görlich m.goerlich1990 at googlemail.com
Mo Jun 20 23:20:19 CEST 2011


Hi Thomas,

ja stimmt die Fehlerseite schickt ein 503 (hätt ich auch selber drauf
kommen können -.-") danke für den Hinweis.

Mfg Manuel



Am  Freitag den 17 Juni 2011 09:31:25 +0200 schrieb Thomas Koudela
>
> 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 mailing list
> php at phpbar.de
> http://lists.phpbar.de/mailman/listinfo/php
>
>
> Ende php Nachrichtensammlung, Band 96, Eintrag 3
> ************************************************

php::bar PHP Wiki   -   Listenarchive