SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



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



:: Buchempfehlung ::

Websites optimieren für Google & Co.

Websites optimieren für Google & Co. zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP für Fortgeschrittene und Experten
Hilfe Community Kalender Heutige Beiträge Suchen

PHP für Fortgeschrittene und Experten Fortgeschrittene und Experten können hier über ihre Probleme und Bedenken talken

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 29.10.2003, 11:04:51
LFeldTom LFeldTom ist offline
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
Mit Zitat antworten
  #2  
Alt 29.10.2003, 11:21:14
René_M René_M ist offline
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));

__________________
Gruß
René

lange Weile dann --> Webchess 2003
Mit Zitat antworten
  #3  
Alt 29.10.2003, 11:26:43
LFeldTom LFeldTom ist offline
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
Mit Zitat antworten
  #4  
Alt 29.10.2003, 11:36:06
René_M René_M ist offline
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.
__________________
Gruß
René

lange Weile dann --> Webchess 2003

Geändert von René_M (29.10.2003 um 11:41:36 Uhr)
Mit Zitat antworten
  #5  
Alt 29.10.2003, 12:36:18
LFeldTom LFeldTom ist offline
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).
Mit Zitat antworten
  #6  
Alt 29.10.2003, 18:39:56
sourcecode sourcecode ist offline
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); 
Mit Zitat antworten
  #7  
Alt 30.10.2003, 09:38:16
LFeldTom LFeldTom ist offline
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
Mit Zitat antworten
  #8  
Alt 31.10.2003, 11:16:02
René_M René_M ist offline
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.
__________________
Gruß
René

lange Weile dann --> Webchess 2003
Mit Zitat antworten
Antwort


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.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 02:35:53 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt