system
(PHP 4, PHP 5, PHP 7, PHP 8)
system — Führt ein externes Programm aus und zeigt dessen Ausgabe an
Beschreibung
$command
, int &$result_code
= null
): string|false
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.
-
result_code
-
Ist das
result_code
-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 '<pre>';
// 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 '
</pre>
<hr />Letzte Zeile der Ausgabe: ' . $last_line . '
<hr />Rückgabewert: ' . $retval;
?>
Anmerkungen
Falls 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:
Wenn ein Programm mit dieser Funktion gestartet wird und im Hintergrund weiterlaufen soll, muss die Ausgabe des Programms in eine Datei oder einen anderen Ausgabestrom umgeleitet werden. Anderenfalls bleibt PHP solange hängen, bis das Programm zu Ende ausgeführt wurde.
Siehe auch
- exec() - Führt ein externes Programm aus
- passthru() - Führt ein externes Programm aus und zeigt dessen Ausgabe an
- popen() - Öffnet einen Dateizeiger für einen Prozess
- escapeshellcmd() - Maskiert Metazeichen der Shell
- pcntl_exec() - Führt ein angegebenes Programm im aktuellen Prozessraum aus
- Backtick-Operator