Die system () Funktion
Die Systemfunktion in PHP verwendet ein Zeichenfolgenargument mit dem auszuführenden Befehl sowie alle Argumente, die Sie an diesen Befehl übergeben möchten. Diese Funktion führt den angegebenen Befehl aus und speichert den resultierenden Text im Ausgabestream (entweder die HTTP-Ausgabe in einer Webserversituation oder die Konsole, wenn Sie PHP als Befehlszeilentool ausführen). Die Rückgabe dieser Funktion ist die letzte Ausgabezeile des Programms, wenn es eine Textausgabe ausgibt.
Die exec () Funktion
Die Systemfunktion ist sehr nützlich und leistungsstark, aber eines der größten Probleme dabei ist, dass der gesamte aus dem Programm resultierende Text direkt in den Ausgabestream gelangt. Es wird Situationen geben, in denen Sie den resultierenden Text möglicherweise formatieren und auf andere Weise oder gar nicht anzeigen möchten.
Dafür ist die Exec-Funktion in PHP perfekt angepasst. Anstatt den gesamten vom ausgeführten Programm generierten Text automatisch in den Ausgabestream zu kopieren, haben Sie die Möglichkeit, diesen Text in ein Array einzufügen, das im zweiten Parameter an die Funktion zurückgegeben wird:
Die Funktion shell_exec ()
Die meisten Programme, die wir bisher ausgeführt haben, waren mehr oder weniger echte Programme1. Die Umgebung, in der Windows- und Unix-Benutzer arbeiten, ist jedoch viel umfangreicher. Windows-Benutzer haben die Möglichkeit, das Windows-Eingabeaufforderungsprogramm cmd.exe zu verwenden. Dieses Programm wird als Befehlsshell bezeichnet.
Die Funktion passthru ()
Eine faszinierende Funktion, die PHP ähnlich wie bisher bietet, ist die Durchgangsfunktion. Diese Funktion führt wie die anderen das Programm aus, das Sie anweisen. Anschließend wird jedoch sofort die Rohausgabe dieses Programms an den Ausgabestream gesendet, mit dem PHP derzeit arbeitet (dh entweder HTTP in einem Webserverszenario oder die Shell in einer Befehlszeilenversion von PHP).
Die proc_open () Funktion und popen ()
Funktion
proc_open () ähnelt popen (), bietet jedoch ein viel höheres Maß an Kontrolle über die Programmausführung. cmd ist der Befehl, der von der Shell ausgeführt werden soll. Descriptorspec ist ein indiziertes Array, bei dem der Schlüssel die Deskriptornummer darstellt und der Wert angibt, wie PHP diesen Deskriptor an den untergeordneten Prozess weitergibt. Pipes werden auf ein indiziertes Array von Dateizeigern gesetzt, die dem PHP-Ende aller erstellten Pipes entsprechen. Der Rückgabewert ist eine Ressource, die den Prozess darstellt. Sie sollten es mit proc_close () freigeben, wenn Sie damit fertig sind.
proc_open()
undpopen()
, die beide ein höheres Maß an Kontrolle über den erzeugten Prozess ermöglichen.