Hallo Forum,
nehmen wir an ich habe ein Script geschrieben was Zahlen hochzählt von 1 bis
unendlich:-)
Is ja nicht schwer zu schreiben.
Wenn ich jetzt kein Timeout habe, läuft das Script wohl erstmal ne Zeit.
Wenn ich jetzt aber das Script per Befehl beenden will, was genau
muss ich tun?
INNERHALB des Scriptes ist mir das klar, da kann ich exit() etc.
benutzen, aber wie spreche ich den Thread des Scriptes an.
es gibt zwei Moeglichkeiten, die eine von Dir genannte mit exit() ist falsch, diese verursacht bei IPS, dass auch eventuelle nachfolgende Scripte nicht mehr abgearbeitet werden. Hierfuer immer Return benutzen.
Die zweite Moeglichkeit ist, entweder die Scriptlaufzeit per PHP.INI zu begrenzen oder per Variable einen „Halt“ Befehl zu initieren. Dazu muss Dein Scipt allerdings immer diese Variable abfragen und bei entsprechendem Status das Script mit Return verlassen.
Ok, mit exit hast Du natürlich recht, mache das bei meinen Scripten/If Schleifen und switch Anweisungen etc. auch immer so.
Die Möglichkeit mit der Variablen und return, ist wenn ich Sie richtig verstanden habe insofern nicht so besonders schön, weil ich dann ja in einem langen Script relativ viele solche Abfragen einbauen müßte, aber das währe zu überlegen.
Mit der php.ini, das verstehe ich nicht, wie kann ich während der Ausführung eines bestimmten scriptes x dessen Ablaufzeit zurücksetzen. Hast Du da mal ein Beispiel?
Kann man denn nicht dem PHP Interpreter sagen führe letzten PHP Befehl eines Scriptes aus und stoppe dann?
das ist eigentlich die einzigste Moeglichkeit, das entsprechend sauber und kontrolliert zu machen.
Mit der php.ini, das verstehe ich nicht, wie kann ich während der Ausführung eines bestimmten scriptes x dessen Ablaufzeit zurücksetzen. Hast Du da mal ein Beispiel?
Kann man denn nicht dem PHP Interpreter sagen führe letzten PHP Befehl eines Scriptes aus und stoppe dann?
Gruß Thomas
das trifft dann nur generell zu, und wird Dir sicher nicht helfen. Ich habe es nur der Vollstaendigkeit aufgefuehrt. Letzteres geht IMHO nicht.
Ein scriptbedingtes abbrechen einer Schleife in PHP geschieht sauber mit break. Nach dem Break befehl verlässt der Stackpointer die Schleife, nicht jedoch das Script. Du kannst also nach der Schleife noch weiterarbeiten oder das script auf „normalem Wege“ enden lassen. Return beendet das Script, egal was noch kommt, mit dem Holzhammer
wenn man break clever verwendet ist danach kein Script mehr übrig das weiter ausgeführt werden müsste und somit ist es auf natürlichem Weg zuende. Eine durchaus saubere Methode und kein Holzhammer/Garbage Collector/Speicherfreigabe nötig.
Na ich hab ja nix gegen saubere Soft (ob Microsoft Entwickler hier auch lesen:D ), aber break nutzt mir hier nicht ganz so viel, weil ich mein Nachtmodusscript eher beenden will wenn ich es möchte und da ist ne Menge TTS_Speak, mp3, und geparstes Zeug aus dem Inet dabei was nacheinander abgearbeitet wird, da muß ich immer mal zwischendurch ein paar Türen einbauen um raus zu kommen und wenns halt erstmal nix bessers gibt als return, dann muß ich das so machen, ach da lieb ich mir doch meine alten Assemblerzeiten:rolleyes: Da gabs ein Interrupt und man hat einfach den Zeiger auf eine andere Adresse gesetzt und schon gings woanders weiter…
Also Toni & Torro, da werd ich Euch wohl doch noch des öfteren brauchen.
das macht doch nix, wir helfen gern. Es gibt uebrigens auch unter PHP so eine Art Interrupt Steuerung, nur leider kannst Du die in diesem Fall nicht benutzen. Ich habe auch noch nicht getestet, ob sie in der IPS Webserverumgebung sauber laeuft, da bin ich mir naemlich nicht ganz sicher - da dies doch ziemlich low level ist.
Aber nix fuer ungut, Du wirst das schon richtig loesen.