PHP Verständnisfrage

Alice

Erfahrenes Mitglied
Hallo, ich habe da eine Frage.

Ich habe ein PHP-Skript welches mittlerweile ganz schön gross ist mit vielen Berechnungen und großen Grafiken arbeitet.

Mitten im Skript werden auch mehrere ImageMagick exec-Befehle ausgeführt.

Ich frage mich wie genau PHP arbeitet. Wird jeder Befehl NACH UND NACH ausgeführt oder kann es bei einem Befehl der etwas rechenintensiver ist passieren, dass das Skript weiter arbeitet obwohl der vorherige Befehl (z.B. exec-Befehl) nicht fertig ist?
 
Das ist relativ leicht: die Befehle werden solange ausgeführt bis sie einen Rückgabewert von den ausgeführten Befehlen erhalten. Im Normal läuft der Befehl also bis die Shell fertig ist.
 
Der PHP-Interpreter arbeitet natürlich Befehl nach Befehl ab.
Die Ausnahmen wären Threads - allerdings fällt mir spontan keine interne (in C geschriebene) PHP-Funktion ein, die Threads nutzt. Aber ich schaue auch nicht regelmäßig in den PHP Source ;)

Zu [phpf]exec[/phpf]:
php.net hat gesagt.:
Note:

If a program is started with this function, in order for it to continue running in the background, the output of the program must be redirected to a file or another output stream. Failing to do so will cause PHP to hang until the execution of the program ends.
 
Es gibt für PHP den Skript Time out Parameter, genauso für die Shell die du mit exec aufrufst. Diese solletst du wirklich nur ändern, wenn du sicher bist das dein Skript auch sowas wie einen Abrruch hat.
 
Zurück