timeout mit php

S

stefan1

Guest
in sachen php bin ich leider anfänger, aber ich hab jetzt vieles durchgelesen und kapiere es nicht ;-(

ich befinde mich in einer schleife, dort wird abgefragt:

if {bla bla}
else {viel zu viel zu tun, zeitüberschreitung}

ende schleife
weiter gehts

wo da genau kann ich wie das timeout einbauen - ich blick da einfach nicht durch, ich möchte die geschichte nur auf den "else-fall" beschränken!

danke!
 
sorry! ich versuche es ausführlich:

also: ich frage per script externe bilder einer befreundeten seite ab (legal!) und speichere sie dann auf meiner website!

die externe seite ist aber oft überlastet, darum speichere ich die bilder gleich auf meinen webspace. durch diese abfragen:

script fragt: hab ich die bilder? wenn ja, dann zeige die eigenen, wenn nein, importiere es von der externen seite und speichere sie - entsteht manchmal ein timeout! das externe bild ist zwar da, die auslieferung dauert aber zu lange, es wird ein bild mit größe 0 gespeichert!

jetzt will ich da einen timeout einbauen! dauert die auslieferung wieder einmal zu lange soll abgebrochen werden!

--------------------------
das ganze befindet sich in einer schleife:

IF abfrage bild da -> nimm eigenes

ELSE bild nicht da -> hol es dir
-> dauerts zu lange, nimm alternative (coming soon) und brich ab

weiter im script
---------------------------

von der ganzen geschichte bekommen die seitenbesucher nichts mit, da diese dinge in meiner administration passieren. dort werden die statischen html-dateien erstellt in denen nur interne bilder oder "coming soon" angezeigt wird, weil das holen von der externen seite zu lange dauern würde.

danke!
 
QUOTE (stefan1 @ So 29.07.2007, 18:07)jetzt will ich da einen timeout einbauen! dauert die auslieferung wieder einmal zu lange soll abgebrochen werden!

Im Prinzip steckt da ja das Laden einer Url dahinter. Eigentlich sollte / müßte es da einen Timeout-Parameter geben, der entsprechend zu bestücken ist (bsp. 30 Sekunden).

Dann läßt sich das mit einer üblichen Fehlerbehandlung abfangen.

Aber da ich kein PHP nutze, ist das nur Spekulation. In der Microsoft-Welt gibt es solche Timeout-Parameter bei den entsprechenden Objekten an allen Ecken und Enden.
 
Im Grunde schon, bei den Socket-Funktionen, ich weiß jedoch nicht, wie das verhalten ist, wenn der Socket wohl einen Connect bekommt, aber die Datei nicht komplett runterladen kann. Im Prinzip müsste es entweder zum Timeout des Scriptes kommen, oder man kann die Datei auf Ihre Größe.
Wenn Erstes nicht geschehen soll, muss man halt die Startzeit des Scriptes immer mit der aktuellen Zeit vergleichen und notfalls auf der Schleife mit einer Fehlerübergabe herausspringen (Schüsselwort: break; Funktionen: fsocketopen, fread).

Vielleicht gibt es auch einen einfacheren Weg, aber damit habe ich mich bisher noch nicht beschäftigt, außer mal zum Probieren.
 
$refresh=2;
echo("<META HTTP-EQUIV='refresh' content='".$refresh.";URL=datei.php'>");


$refresh=2;
echo("<META HTTP-EQUIV='refresh' content='".$refresh.";URL=$_SERVER[PHP_SELF]'>");

man Kann sich auch ein counter basteln oder meinst du server timeout ???

 
danke für eure antworten - ich meinte einen server-timeout!

ich hab das ganze jetzt umgangen, indem ich ein "sleep()" eingebaut hab!
 
Das Server Timeout kannst Du in Sekunden in der PHP.ini ändern. Dafür must Du aber Server Admin sein....
 
Zurück
Oben