exec
Führt ein externes Programm aus
Beschreibung
string exec
( string $command
[, array &$output
[, int &$return_var
]] )
Parameter-Liste
-
command
-
Der auszuführende Befehl
-
output
-
Ist der Parameter output angegeben, wird
dieses mit jeder Zeile des Befehlsausgabe gefüllt. Am Ende
einer jeweiligen Zeile stehende Whitespaces wie beispielsweise
ein \n wird nicht in dieses Array übernommen.
Beachten Sie, dass wenn das Array bereits 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.
-
return_var
-
Ist der Parameter return_var zusammen mit
dem Parameter output angegeben, so
wird der Rückgabestatus des ausgeführten Befehls in diese
Variable geschrieben.
Rückgabewerte
Die letzte Zeile der Ausgabe des Befehls. Wenn ein Befehl ausgeführt
werden muss und alle Daten des Befehls direkt ohne Umweg über ein Array
ausgegeben werden soll, kann die Funktion passthru
verwendet werden.
Um die Ausgabe des ausgeführten befehls zu erhalten muss sichergestellt
werden, dass der Parameter output gesetzt und
verwendet wird.
Beispiele
Beispiel #1 Ein exec-Beispiel
<?php
// Gibt den Benutzernamen aus, unter dem der PHP/HTTPD-Prozess läuft
// (auf einem System in dem das Programm "whoami" im Ausführungspfad liegt)
echo exec('whoami');
?>
Anmerkungen
WarnungFalls Sie es erlauben, dass Daten von
Usereingaben an diese Funktion weitergereicht werden, sollten Sie
escapeshellarg oder escapeshellcmd
verwenden. Bei Verwendung dieser Funktionen stellen Sie sicher, dass kein
Benutzer Ihr System überlisten kann, beliebige Kommandos auszuführen
Hinweis:
Falls Sie diese Funktion benutzen, um ein
Programm zu starten und im Hintergrund weiterlaufen lassen möchten,
müssen Sie sicherstellen, dass die Ausgabe des Programms in eine Datei oder
einen anderen Ausgabestream umgeleitet wird. Anderenfalls wird PHP solange
hängen, bis das Programm zu Ende ausgeführt wurde.
Hinweis: Mit aktiviertem Safe Mode können Sie nur Programme
ausführen, die im Verzeichnis liegen, das mit safe_mode_exec_dir angegeben wurde. Aus
praktischen Gründen ist es gegenwärtig nicht erlaubt, dass der Pfad zu einem
Programm .. enthält.
WarnungMit aktiviertem Safe Mode wird der Kommandostring
mit escapeshellcmd kodiert. Deshalb wird
echo y | echo x zu
echo y \| echo x.