fopen - Problem

Ich bin heute auch leicht verwirrt. [phpf]fopen[/phpf] ist für diese Art von Untersuchung eigentlich nicht so gut geeignet. [phpf]fsockopen[/phpf] ist da viel schöner.

So funktioniert es, musst es nur noch mal anpassen.

PHP:
<?php

$projects = array('www.heise.de', 'www.google.de', 'www.tutorials.de');

foreach ( $projects as $prj ) 
{
	if (fsockopen ( $prj, 80, $errno, $errstr, 1 ) == true) 
	{
		echo "<img src='images/online.gif'>";
	} 
	else 
	{
		echo "<img src='images/offline.gif'>";
	}
}  

?>
 
Danke für dein Beispiel! Das funktioniert!

Aber warum funktioniert es in meinem Beispiel nicht?

PHP:
foreach ( file ( 'settings/projects.txt' ) as $project ) {
$project  = explode ( '|', $project );
if (@fsockopen ( $project [1], 80, $errno, $errstr, 1 ) == true) {
echo "<img src='images/online.gif'>";
} else {
echo "<img src='images/offline.gif'>";
}
}
 
Hmm habe es nun entfernt, aber trotzdem in meinem Script keine Veränderung...

PHP:
if (@fsockopen ( substr ( $project [1], '7' ), 80, $errno, $errstr, 1 ) == true) {
	echo "<img src='images/online.gif'>";
} else {
	echo "<img src='images/offline.gif'>";
}
 
Dann das "@" wegnehmen, damit du auch mal Fehlermeldungen angezeigt bekommst und testweise die URL ausgeben, damit du siehst, ob sie evtl. immer noch Fehler aufweist.
 
Es wird keine Fehlermeldung ausgegeben...

Liegt es an der Schleife? Kann es sein, dass fsockopen nicht in einer Schleife funktioniert? Immer die letzte URL wird komischerweise als Online angezeigt, alle anderen als Offline!? :confused::confused::confused:

Ich habe im Netz gelesen, dass es daran liegen kann dass die schleife nicht solange wartet, wie fsockopen braucht und aus diesem Grund die ersten alle false zurück geben und die letzte true. Kann das richtig sein?
 
Zuletzt bearbeitet:
Keiner eine Idee warum immer alle als Offline angezeigt werden, bis auf das letzte?

Ist doch komisch oder?

PHP:
foreach ( file ( 'settings/projects.txt' ) as $project ) {
$project  = explode ( '|', $project );
if (fsockopen ( substr ( $project [1], '7' ), 80, $errno, $errstr, 1 ) == true) {
    echo "<img src='images/online.gif'>";
} else {
    echo "<img src='images/offline.gif'>";
} 
}
 
Es liegt mit 99%iger Wahrscheinlichkeit an der Datei mit den Daten selbst bzw. daran, dass Du sie falsch einliest. Aber Du möchtest diese Datei ja offensichtlich nicht posten...
Wie wär's dann wenigstens mit einem Auszug?
Wenn die Datei geheim ist kannst Du ja ein paar fiktive Zeilen nehmen.
 
Zurück