jollyjumper83
Goto Top

ftp connect Zeitproblematik

Zeitintervall viel zu hoch

Hallo liebe It-Gemeinde,

habe ein kleines Problem. Ich haabe auf meiner Website einen FTP Verfügbarkeitscheck eingerichtet, der auch soweit funktioniert. Je nach Status zeigt dieses Skripte mit Hilfe einer roten oder grünen LED-gif den aktuellen Zustand unseres FTP Servers an. Jetzt habe ich nur das Problem wenn der Server nicht verfügbar ist und somit die ftp connect ein FALSE sendet der Intervall bis er das FALSE sendet über 90 Sekunden dauert. Jetzt hatte ich schon versucht einfach das Skripte via "set time limit(5)" auf 5 Sekunden zu beschränken, doch es reagiert gar nicht darauf. Gibt es irgendwie eine Möglichkeit den Verbindungsversuch zeitlich zu beschränken?

Hier das simple Skripte als Beispiel:

<?php
set_time_limit(4);
$ein= '<div id="apDiv2"></div>';
$aus= '<div id="apDiv1"></div>';
$conn_ftp = ftp_connect("---.------.tv",21);
if($conn_ftp == "1")
{
echo $ein;
}
else
{
echo $aus;
} ?>


Mit besten Danke

Content-ID: 106559

Url: https://administrator.de/contentid/106559

Ausgedruckt am: 22.11.2024 um 20:11 Uhr

nxclass
nxclass 20.01.2009 um 14:18:04 Uhr
Goto Top
benutze fsockopen() - da kannst du ein timeout angeben.

http://de.php.net/fsockopen
nilius
nilius 22.01.2009 um 08:54:51 Uhr
Goto Top
vll must du sie wieder schliessen mit ftp_quit(), nur eine idee
JollyJumper83
JollyJumper83 26.01.2009 um 09:58:10 Uhr
Goto Top
Hallo, so hat leider ein wenig gedauert. Habe beide Tipps mal ausprobiert. Die Variante das ich wie "nilius" geschrieben hat, dass ich die FTP Verbindung wieder schließen soll hat nicht funktioniert. Ist eigentlich auch logisch, denn damit die Verbindung wieder geschlossen werden kann muss ja ersteinmal der erste Programmzeig erfolgreich durchlaufen werden in dem die Verbindung aufgebaut wird. Ist mir nach einer PHP Ablaufanzeige aufgefallen. Das hat also leider nicht funktioniert.
Die erste Variante mit fsockopen(), ist dagegen genau das was ich gesucht hatte funktioniert super, durch das einstellen der Timeout auf 1 Sekunde habe ich genau den Erfolg den ich haben wollte.
Super danke für den Tipp. Damit ist mein Problem wieder einmal gelöst.

MfG Simon