1
Weil ich die Erfahrung gemacht habe, daß einige meiner Skripte Stunden oder sogar Tage brauchen, habe ich mir dagegen etwas einfallen lassen. Mein neuestes PHP-Skript liest einen XML-Dump und schickt Daten daraus an eine Datenbank.
Aber als erstes soll es ein kleines Formular ausgeben, das einen Knopf enthält mit dem man das Skript abschalten kann. Ist die dazugehörige POST-Variable gesetzt, dann soll die Position des Dateizeigers für die XML-Datei festgestellt werden und dieser Wert in einer kleinen Textdatei abgespeichert werden. Danach wird die WHILE-Schleife mittels break; verlassen, so daß das Skript nur noch die Datenbankverbindung beendet und beide Dateien schließt. Bei jedem Neustart holt das Skript den Wert für die Position des Dateizeigers aus der Textdatei. So hatte ich mir das zumindest vorgestellt.
Also das Skript ist so aufgebaut, daß es erst das kleine Formular ausgibt. Als nächstes kommt die Überprüfung des aktuellen Wertes für den Dateizeiger. Danach kommt die WHILE-Schleife, in der sowohl die XML-Datei verarbeitet wird als auch überprüft wird, ob die POST-Variable gesetzt ist. Einmal pro Schleifendurchlauf sollte das kontrolliert werden.
Weil das Formular (nach error_reporting und time_limit) am Anfang des Skriptes steht, hatte ich erwartet, daß es als erstes ausgegeben wird. Wenn ich die WHILE-Schleife auskommentiere, dann wird das Formular auch ausgegeben. Sonst aber nicht. Anscheinend möchte PHP erst das gesamte Skript abarbeiten, also die WHILE-Schleife bis zu ihrem Ende durchlaufen. Danach bringt die Abschaltmöglichkeit jedoch nichts mehr. Eine Unterbrechung ist ja nur sinnvoll, solange das Skript seine Aufgabe noch nicht vollständig beendet hat.
Läßt sich das korrigieren?
Oder ist an dem Konzept etwas grundlegend falsch?
Ranma
Aber als erstes soll es ein kleines Formular ausgeben, das einen Knopf enthält mit dem man das Skript abschalten kann. Ist die dazugehörige POST-Variable gesetzt, dann soll die Position des Dateizeigers für die XML-Datei festgestellt werden und dieser Wert in einer kleinen Textdatei abgespeichert werden. Danach wird die WHILE-Schleife mittels break; verlassen, so daß das Skript nur noch die Datenbankverbindung beendet und beide Dateien schließt. Bei jedem Neustart holt das Skript den Wert für die Position des Dateizeigers aus der Textdatei. So hatte ich mir das zumindest vorgestellt.
Also das Skript ist so aufgebaut, daß es erst das kleine Formular ausgibt. Als nächstes kommt die Überprüfung des aktuellen Wertes für den Dateizeiger. Danach kommt die WHILE-Schleife, in der sowohl die XML-Datei verarbeitet wird als auch überprüft wird, ob die POST-Variable gesetzt ist. Einmal pro Schleifendurchlauf sollte das kontrolliert werden.
Weil das Formular (nach error_reporting und time_limit) am Anfang des Skriptes steht, hatte ich erwartet, daß es als erstes ausgegeben wird. Wenn ich die WHILE-Schleife auskommentiere, dann wird das Formular auch ausgegeben. Sonst aber nicht. Anscheinend möchte PHP erst das gesamte Skript abarbeiten, also die WHILE-Schleife bis zu ihrem Ende durchlaufen. Danach bringt die Abschaltmöglichkeit jedoch nichts mehr. Eine Unterbrechung ist ja nur sinnvoll, solange das Skript seine Aufgabe noch nicht vollständig beendet hat.
Läßt sich das korrigieren?
Oder ist an dem Konzept etwas grundlegend falsch?
Ranma