PHP Dokumentation: Function system
12. Januar 2010 von werner
system
(PHP 4, PHP 5)
system — Führt ein externes Programm aus und zeigt dessen Ausgabe an
Beschreibung
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 '<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 vonUsereingaben an diese Funktion weitergereicht werden, sollten Sieescapeshellarg() oder escapeshellcmd()verwenden. Bei Verwendung dieser Funktionen stellen Sie sicher, dass keinBenutzer Ihr System überlisten kann, beliebige Kommandos auszuführen
Hinweis: Falls Sie diese Funktion benutzen, um einProgramm zu starten und im Hintergrund weiterlaufen lassen möchten,müssen Sie sicherstellen, dass die Ausgabe des Programms in eine Datei odereinen anderen Ausgabestream umgeleitet wird. Anderenfalls wird PHP solangehängen, bis das Programm zu Ende ausgeführt wurde.
Hinweis: Mit aktiviertem Safe Mode können Sie nur Programmeausführen, die im Verzeichnis liegen, das mit safe_mode_exec_dir angegeben wurde. Auspraktischen Gründen ist es gegenwärtig nicht erlaubt, dass der Pfad zu einemProgramm .. enthält.
Mit aktiviertem Safe Mode wird der Kommandostringmit escapeshellcmd() kodiert. Deshalb wirdecho y | echo x zuecho "y | echo x".
Siehe auch
- exec() – Führt ein externes Programm aus
- passthru() – Führt ein externes Programm aus und zeigt dessen Ausgabe an
- popen() – Öffnet einen Prozesszeiger
- escapeshellcmd() – Maskiert Shell-Metazeichen
- pcntl_exec() – Führt ein angegebenes Programm im aktuellen Prozessraum aus
- Backtick-Operator