Script mit "while()" ausführen mit exec('php script.php'); ohne Warten?

Hawkster

Erfahrenes Mitglied
Script mit "while()" ausführen via exec('php script.php'); ohne Warten?

Hi all,

suche irgendeine möglichkeit ein Script, welches eine Endlosscheife hat über exec oder sowas zu starten, ohne das ich dann auf der Seite hängen bleibe. Weil das script ja eine Endlosschleife hat komm ich nicht weiter in dem anderen. Bei "Batch" gab es die Funktion "start", da wurde nur ausgeführt ohne rückmeldung.
Gibt es da auch ne möglichkeit in PHP?

MFG
Hawkster
 
Zuletzt bearbeitet:
Ja, es ist möglich. Das nennt man CronJob. Kannst ja mal bei Google suchen. Aber wenn dein Server das nicht anbietet, dann sieht es schlecht aus. Ganz einfach deshalb, weil ein PHP-Script nur eine bestimmte zeit lang laufen darf (ich glaub stantart ist 3min) und dann wird er abgebrochen.
 
Geht schon, aber das war net mein Ziel.
Ich möchte bzw. muss über einen php.befehl gehen und nicht über Cronjobs...
 
birnkammer hat doch gerade erklärt, wie es auch mit [phpf]exec[/phpf] geht?

Warum beachtest du es nicht, bzw. setzt es um?
 
Hab ich. Aber ich erkläre es nochma, ich habe eine Datei, in der eine Endlosschleife drinnen ist (while.php). Diese möchte ich nun durch ein anderes Script starten, z.b.
PHP:
<?
exec("php while.php");

//Hier kommt noch was nach dem !ANSTOßEN! des scripts
?>

aber nun kommt das Problem, das, das ich nicht bis zum Kommentar komme, da das Script ja erst wartet, bis exec(); fertig ist...
 
Du könntest jetzt anfangen das was da noch kommen soll in einem <iframe> zu laden, aber das ist irgendwie eine "Murkslösung".

Lg Max
 
string exec ( string befehl [, array ausgabe [, int return_var]] )

exec() führt ein gegebenen Befehl aus, ohne eine Ausgabe zu erzeugen. Die Funktion gibt lediglich die letzte Zeile aus dem Befehlsergebnis zurück. Wenn Sie auf die direkte Rückgabe/ Ausgabe eines Befehls angewiesen sind, dann benutzen Sie stattdessen die Funktion passthru().

Ist der Parameter array angegeben, wird dieses mit jeder Zeile des Befehlsausgabe gefüllt. Beachten Sie, dass wenn das Array schon Elemente enthält, die Funktion exec() die Ausgabe an das Array anhängt. Wenn Sie dieses nicht wünschen, rufen Sie die Funktion unset () für das Array auf, bevor Sie es als Parameter der Funktion exec() übergeben.

Ist der Parameter return_var angegeben, so wird der Rückgabestatus des ausgeführten Befehls in diese Variable geschrieben.

Beachten Sie, dass wenn Sie Benutzereingaben an diese Funktion übergeben, diese mit escapeshellcmd() behandelt, um sicherzustellen, dass niemand mit willkürlichen Befehlen Ihrem System Schaden zufügen kann.

Beachten Sie auch, dass wenn Sie ein Programm mit dieser Funktion starten und Sie es im Hintergrund laufen lassen möchten, Sie sicherstellen müssen, dass die Ausgabe des Programms in eine Datei oder anderenen Ausgabestream umgeleitet wird. Andernfalls wird PHP solange laufen, bis das Programm beendet ist.

Versuch doch mal den Output umzuleiten.
 
Zurück