Function.system
Aus PHP-Wiki
system — Führt ein externes Programm aus und zeigt dessen Ausgabe an
Inhaltsverzeichnis |
Beschreibung
string system ( string $command [, int &$return_var ] )
Die Funktion system() ähnelt der C Version der
Funktion sehr, indem es einen übergebenen
Befehl
ausführt und dessen Ausgabe
anzeigt.
Wird ein system()-Funktionsaufruf durchgeführt, versucht
die Funktion automatisch, nach jeder Ausgabezeile den Ausgabepuffer zu
flushen, sofern PHP als Servermodul läuft.
Wenn Sie einen Befehl ausführen wollen und die erzeugten Daten ohne Behinderung
direkt zurückgeben wollen, verwenden Sie stattdessen die Funktion
passthru().
Parameter-Liste
- command
- Das auszuführende Kommando.
- return_var
- Ist das return_var -Argument angegeben, wird der Rückgabewert des ausgeführten Befehls in diese Variable geschrieben.
Rückgabewerte
Gibt bei Erfolg die letzte Zeile der Ausgabe des Befehls zurück, im Fehlerfall
hingegen FALSE.
Beispiele
Beispiel #1 system() example
<?php echo ''; // Gibt das gesamte Ergebnis des Shellkommandos "ls" aus und hält als // Rückgabewert die letzte Zeile dieser Ausgabe in $last_line. Der // Rückgabewert des Shellkommandos wird in $retval gespeichert. $last_line = system('ls', $retval); // Ausgeben zusätzlicher Informationen echo ' Letzte Zeile der Ausgabe: ' . $last_line . ' Rückgabewert: ' . $retval; ?>
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() codiert. Deshalb wird
echo y | echo x zu echo "y | echo x".