Script um Online Status einer Seite anzuzeigen

A

achim12345654321

Ich weiß das ich hier schon fast Leichenschändung an dem Posting vornehme. Doch das Script gefällt mir echt soweit sehr gut. Ich würde jedoch gerne prüfen lassen ob Bilder Online sind und nicht ein Server. Also testen ob z.B http://www.meinepage.de/bild0001.jpg online ist. Ist das auch Möglich?

Danke
Achim
 
A

achim12345654321

die daten liegen auf einem bilderwebspace, also fremden server.

habe das script mal getestet, es scheint soweit auch zu gehen. einzigstes mango ist das wenn eine datei nicht vorhanden ist nicht nur der Text "Datei konnte nicht geöffnet werden" sondern zuvor auch noch eine Fehlermeldung kommt. (Warning: fopen(http://127.0.0.1/bild1.jpg) [function.fopen]: failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in C:\wamp\www\test.php on line 2)

Kann man das irgendwie ausblenden?

achim
 

tombe

Erfahrenes Mitglied
Schreib es so:

PHP:
@fopen("bla bla bla")

Also das @ vor den Befehl. Dadurch wird die Fehlermeldung unterdrückt.
 
A

achim12345654321

nachdem ich jetzt schon zwei tage das internet leer lese und es einfach nicht kapier wende ich mich halt wieder an die netten leute von hier. :)

ist ja so das ich nicht nur ein bild prüfen will, darum dachte ich mir das ich mir ne .txt anlege mit den bildernamen drinn und die dann in einer schleife prüfen lasse. das er mir die Datei einließt habe ich auch geschafft, nur nicht wie ich das in eine schleife bringe und er mir alle nacheinader abfragt. nachdem ich dazu nicht clever genug bin wollte ich halt die abfragen untereinander schreibe.

PHP:
<?php

echo "Server ist ";

$fp = @fopen ("http://127.0.0.1/bild001", "r") or die("<font color=\"red\">offline</font>");

echo "<font color=\"green\">online</font>";



echo "Server ist ";

$fp = @fopen ("http://127.0.0.1/bild002", "r") or die("<font color=\"red\">offline</font>");

echo "<font color=\"green\">online</font>";
?>

sobald aber das erste Bild offline ist macht das script ja nicht mehr weiter. und an dem zahne ich jetzt schon die ganze Zeit ohne auf eine brauchbare Idee zu kommen. :(


kann mir wer weiterhelfen?

lg
achim
 

Dr Dau

ich wisch hier durch
sobald aber das erste Bild offline ist macht das script ja nicht mehr weiter.
Ist doch auch logisch.
Laut PHP-Manual entspricht die() der Funktion exit().
Und exit() beendet nunmal das Script in einem Fehlerfall. ;)

Angesehen davon:
Haben Deine Bilder keine Dateiendung?
Prinzipiell funktionieren Bilder zwar auch ohne Dateiendung, sind aber sehr ungewöhnlich (egal auf was für ein System).

Du sagst dass Du die Bildnamen in eine Textdatei schreibst.
Dann solltest Du beim auslesen der Textdatei ja auch ein Array haben.
Das Array kann man sich zu nutze machen:
PHP:
<?php
// $file[] bildet ein Array
$file[] = "http://127.0.0.1/011.jpg";
$file[] = "http://127.0.0.1/012.jpg";
$file[] = "http://127.0.0.1/013.jpg";
$file[] = "http://127.0.0.1/013.jpg";
$file[] = "http://127.0.0.1/015.jpg";
$file[] = "http://127.0.0.1/016.jpg";

// durchlaufe das Array in einer Schleife
for($i = 0; $i < count($file); $i++) {
    $handle = @fopen($file[$i], "r"); /* versuche die Datei zu öffnen */

    if($handle==true) { /* wenn die Datei geöffnet werden konnte..... */
        echo "<font color=\"green\">".$file[$i]." ist online</font><br>";
    } else { /* sonst dieses..... */
        echo "<font color=\"red\">".$file[$i]." ist offline</font><br>";
    }
}
?>
So wird Dir auch gleich gesagt welche Datei genau online bzw. offline ist (soll ja bei der Fehlersuche ganz nützlich sein). ;)

Bei mir existieren nur die Bilder "011.jpg" und "015.jpg".
Folglich werden diese in Grün als "online" angezeigt, während die übrigen Bilder in Rot als "offline" angezeigt werden.
 

Alucard VH

Grünschnabel
probiers mal hier mit:

PHP:
<?
$fp = fsockopen("dein-webserver.tld",80,&$errno,&$errstr,2);
if(!$fp)
   {
   echo "[offline]";
   }
else
   {
   echo "[online]";

}
fclose($fp);
?>

Und wie schreibt man es um wenn einer auf dem server joint das der server dann als belegt angezeigt wird?

Also wenn keiner auf dem server ist soll frei da stehen und sobald einer drauf ist soll belegt da stehen, was für befehle muss ich dann da reinschreiben?

MfG Alucard
 
Zuletzt bearbeitet:

oliverrehrmann

Grünschnabel
habe ein Problen mit dem Onlinestatus und Strarm servern ... Server leuft wird aber offline angezeigt. Warum ???

HTML:
<body background='http://i.imgur.com/TT16s.jpg'>

<html>

<head>

<title>Onlinestatus</title>

<meta http-equiv="cache-control" content="no-cache">

<meta http-equiv="refresh" content="30">

</head>

<body>

<center>

<h1>Server Status</h1>

<table border="0" width="868px">

<tr>

<td><h3><u><b>Server Name<b><u><h3></td>

<td><h3><u><b>Server-Adresse<b><u><h3></td>

<td><h3><u><b>Status<b><u><h3></td>

</tr>

<?php

//Page Variables

    $online='<font color="#31B404"><b> Online</b></td>';

    $offline='<font color="#F00000"><b> Offline</b></td>';

?>

<! ------------------------------------->

<tr>

<td>Server 1</td>

<td><a target="_blank">217.93.88.227:25565</a></td>

<td><?php $fp = @fsockopen("217.93.88.227",25565,$errno,$errstr,2); if(!$fp) { echo "$offline"; } else { echo "$online"; } ?></td>

<tr>

<! ------------------------------------->

<tr>

<! ------------------------------------->

<tr>

<td>Server 2</td>

<td><a target="_blank">217.93.88.227:2302</a></td>

<td><?php $fp = @fsockopen("217.93.88.227",2302,$errno,$errstr,2); if(!$fp) { echo "$offline"; } else { echo "$online"; } ?></td>

<tr>

<! ------------------------------------->

<tr>

<! ------------------------------------->

<tr>

<td>Server 3</td>

<td><a target="_blank">217.93.88.227:28015</a></td>

<td><?php $fp = @fsockopen("217.93.88.227",28015,$errno,$errstr,2); if(!$fp) { echo "$offline"; } else { echo "$online"; } ?></td>

<tr>

<! ------------------------------------->

<tr>

<! ------------------------------------->

<tr>

<td>Server 4</td>

<td><a target="_blank">217.93.88.227:27015</a></td>

<td><?php $fp = @fsockopen("217.93.88.227",27015,$errno,$errstr,2); if(!$fp) { echo "$offline"; } else { echo "$online"; } ?></td>

<tr>

<! ------------------------------------->

<tr>

<! ------------------------------------->

<tr>

<td>Server 5</td>

<td><a target="_blank">217.93.88.227:27015</a></td>

<td><?php $fp = @fsockopen("217.93.88.227",27015,$errno,$errstr,2); if(!$fp) { echo "$offline"; } else { echo "$online"; } ?></td>

<tr>

<! ------------------------------------->

<tr>

<! ------------------------------------->

<tr>

<td>Server 6</td>

<td><a target="_blank">217.93.88.227:27015</a></td>

<td><?php $fp = @fsockopen("217.93.88.227",27015,$errno,$errstr,2); if(!$fp) { echo "$offline"; } else { echo "$online"; } ?></td>

<tr>

<! ------------------------------------->

<tr>

<! ------------------------------------->

<tr>

<td>Server 7</td>

<td><a target="_blank">217.93.88.227:27015</a></td>

<td><?php $fp = @fsockopen("217.93.88.227",27015,$errno,$errstr,2); if(!$fp) { echo "$offline"; } else { echo "$online"; } ?></td>

<tr>

<! ------------------------------------->

<tr>

<! ------------------------------------->

<tr>

<td>Server 8</td>

<td><a target="_blank">217.93.88.227:27015</a></td>

<td><?php $fp = @fsockopen("217.93.88.227",27015,$errno,$errstr,2); if(!$fp) { echo "$offline"; } else { echo "$online"; } ?></td>

<tr>

<! ------------------------------------->

<tr>

</table>

</center>

</body>

</html>

Ist da wo ein Feher den ich übersehen habe kann mir einer helfen.

danke schon mal im voraus