Versuch mal folgendes:
| $command = 'ls /usr';
$output = array();
$retval = null;
exec($command, $output, $retval);
var_dump($output);
var_dump($retval);
|
Was passiert hier?
Wir "sagen" PHP, dass es den Shell-Befehl "ls /usr" ausführen soll. Die Ausgabe von "ls /usr" wird zeilenweise in das Array $output gespeichert. Der Rückgabewert von "ls /usr" wird in $retval gespeichert.
Im var-dump von $output stehen alle Zeilen der Rückgabe von "ls /usr" (in einem Array).
Im var-dump von $retval steht der Errorcode des ausgeführten Befehls (hier "ls /usr"), bei Erfolg in der Regel 0.
Zu beachten ist hier, dass $output und $retval by-reference übergeben werden und deshalb vorher initialisiert werden müssen.
Für system(), passthru() und shell_exec() sollten die Parameter die gleichen sein. Die Arbeitsweise ist allerdings etwas anders. Ich hoffe das hilft.
EDIT: system(), passthru() und shell_exec() nehmen doch nicht die gleichen Parameter, da war ich etwas voreilig. system() und passthru() nehmen als Parameter nur $command und $retval, shell_exec() nur $command.
Grüße