CronJob-Service
bei SELFPHP mit ...
|
+ minütlichen Aufrufen
+ eigenem Crontab Eintrag
+ unbegrenzten CronJobs
+ Statistiken
+ Beispielaufrufen
+ Control-Bereich
Führen Sie mit den CronJobs von
SELFPHP zeitgesteuert Programme
auf Ihrem Server
aus. Weitere Infos
|
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
PHP für Fortgeschrittene und Experten Fortgeschrittene und Experten können hier über ihre Probleme und Bedenken talken |
29.10.2003, 11:04:51
|
Anfänger
|
|
Registriert seit: Oct 2003
Ort: Langenfeld Rhld
Beiträge: 4
|
|
Timeout beim laden von Seiten abfangen
Hallo zusammen,
ich habe ein für mich größeres Problem und mit der Suchfunktion nichts passendes gefunden...
Ich muß für eine Auswertung viele Seiten von anderen Servern einlesen. Vor jedem Lesen setze ich mit set_time_limit(30) das Timeout für das Skript zurück, damit ich überhaupt alle Seiten lesen kann. Einige dieser Server sind bisweilen SEHR zäh in ihren Antworten, d.h. während die Seite gelesen wird ereilt das Skript das Timeout. Ich kann mit vorangestelltem @ zwar die Ausgabe der Fehlermeldung unterbinden, aber da es sich um einen fatal error handelt steht mein Skript an dieser Stelle.
Ab PHP5 könnte man wohl mit try... catach was machen, aber auf dem Server läuft PHP 4.2.7 (und kann von mir nicht geändert werden).
Da file_get_contents erst ab 4.3.0 implementiert ist, habe ich die Seiten mit fopen, file, fclose reingeschaufelt.
Gibt es eine Möglichkeit den Fehler abzufangen, damit das Skript weiterlaufen kann ? Soweit ich das überblicke, kann ich mit einem eigenen errorhandler zwar die Fehlerausgabe beeinflussen, aber nicht zum programm zurückkehren.
Wäre für Anregungen dankbar
Thomas
|
29.10.2003, 11:21:14
|
Junior Member
|
|
Registriert seit: Aug 2003
Ort: Fürstenau (Uckermark, Land Brandenburg)
Beiträge: 259
|
|
Hi Thomas,
vielleicht hilft es?
PHP-Code:
$source = 'http://...';
if(@file($source)) {
$forum = implode('', file($source));
}
|
29.10.2003, 11:26:43
|
Anfänger
|
|
Registriert seit: Oct 2003
Ort: Langenfeld Rhld
Beiträge: 4
|
|
Hallo Rene,
danke für die schnelle Antwort. So wie Du das geschrieben hast habe ich das im Grunde implementiert. Es wird halt keine Fehlermeldung ausgegeben, aber das Skript endet bei einem Timeout.
Für mich ist halt wichtig, daß es weiterläuft, damit wenigstens die Seiten der anderen Server gelesen werden.
Gruß,
Thomas
|
29.10.2003, 11:36:06
|
Junior Member
|
|
Registriert seit: Aug 2003
Ort: Fürstenau (Uckermark, Land Brandenburg)
Beiträge: 259
|
|
Hi Thomas,
ich kann dir jetzt nur den Link zeigen wo ich das verwende. Beispiel
Ist der Server down von dem ich das herhole wird der Rest der Seite trotzdem angezeigt. Ist dann nur der Text nicht zu sehen. Eventuell mal deinen PHP-Timeout auskommentieren.
Nachtrag: auf der rechten Seite unten ist das implode nochmal eingebaut heise.de-News, sind also auch mehrere (2) externe Einbindungen in der Seite. Fällt eine oder alle aus wird der Rest aber dennoch geladen.
Geändert von René_M (29.10.2003 um 11:41:36 Uhr)
|
29.10.2003, 12:36:18
|
Anfänger
|
|
Registriert seit: Oct 2003
Ort: Langenfeld Rhld
Beiträge: 4
|
|
mein Skript hat, wenn alles glatt geht, durchaus Laufzeiten von mehreren Minuten, da einige Startseiten teilweise rekursiv geparst werden müssen. Wenn ich das PHP Timeout auskommentiere, laufe ich immer rein (dient halt dem Rücksetzen des Timers).
|
29.10.2003, 18:39:56
|
Junior Member
|
|
Registriert seit: May 2003
Beiträge: 287
|
|
Du könntest das Skript so einstellen, dass es kein Timeout ereilt - also solange läuft, wie es eben brauch (zum Beispiel bei einem Chat wichtig) - dabei steht die 0 für keine zeitliche Begrenzung:
PHP-Code:
set_time_limit(0);
|
30.10.2003, 09:38:16
|
Anfänger
|
|
Registriert seit: Oct 2003
Ort: Langenfeld Rhld
Beiträge: 4
|
|
Hi sourcecode,
set_time_limit(0) wäre sicher ein Schritt weiter. Aber der Provider setzt doch üblicherweise einen eigenen Timeout (da virtueller Server nicht selber zu beeinflussen). Falls die lahme Seite sich nicht wirklich bekriegt würde mein Skript dann zum Zombi. Ist irgendwie knifflig...
Gruß,
Thomas
|
31.10.2003, 11:16:02
|
Junior Member
|
|
Registriert seit: Aug 2003
Ort: Fürstenau (Uckermark, Land Brandenburg)
Beiträge: 259
|
|
Hi Thomas,
habe deine PN gefunden ;-), E-Mail ist eben raus.
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 02:35:53 Uhr.
|