System() vs. Exec()

Papenburger

Erfahrenes Mitglied
Hallo,

folgendes Problem habe ich.
Per Exec rufe ich eine externe Datei auf:
PHP:
exec("/test -v /etc/test.cfg", $pruef);
Nun bekomme ich aber keinen Rückgabewert!
Auch nicht wenn ich das ganze so aufrufe:
PHP:
$pruef=exec("/test -v /etc/test.cfg");
Rufe ich die Datei aber mit System() auf:
PHP:
system("/test -v /etc/test.cfg", $pruef);
Habe ich den Rückgabewert 0, was ja auch richtig ist. Nur gibt er dann auch noch sämtliche anderen Daten aus, was er nicht soll.

Wer kann mir sagen wieso das mit Exec() nicht funktioniert?


MFG
Papenburger
 
Hallo,
:rtfm:
php.net hat gesagt.:
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.
:rolleyes:

mfg
forsterm
 
den hab ich auch schon gefunden aber bin da nicht wirklich schlau draus geworden.

Wenn ich das nun richtig verstehe muss das so:
PHP:
exec("/test -v /etc/test.cfg", $pruef[], $rueck);
 
Zurück