Führen Sie den Befehl Shell in PHP mit EXEC aus

Führen Sie den Befehl Shell in PHP mit EXEC aus

Das PHP -Skript wird hauptsächlich für die Entwicklung von Webanwendungen verwendet, kann jedoch auch für andere Zwecke verwendet werden. PHP verfügt über einige integrierte Funktionen, um systembezogene Befehle auszuführen. exec () ist einer von ihnen. Es wird verwendet, um Shell -Befehle oder ein Programm aus dem PHP -Skript auszuführen. Wie diese Funktion in PHP verwendet werden kann, werden in diesem Tutorial gezeigt.

Syntax:

String exec (String $ command [, array & $ output [, int & $ return_var]])

Diese Funktion kann drei Argumente erfolgen. Das erste Argument ist obligatorisch, das den Systembefehl übernimmt. Die beiden anderen Argumente sind optional. Das zweite Argument wird verwendet, um die Ausgabe des Befehls in einem Array zu speichern. Das dritte Argument dieser Funktion wird verwendet, um den Rückgabebatus des ausgeführten Befehls zu speichern. Diese Funktion gibt die letzte Zeile aus der ausgeführten Befehlsausgabe zurück.

Beispiel 1: Verwendung von exec () ohne optionale Argumente

Die grundlegende Nutzung der Funktion exec () hat in diesem Tutorial gezeigt. Erstellen Sie eine PHP -Datei mit dem folgenden Skript, um zu wissen, wie die Funktion exec () die Befehlsausgabe zurückgibt. ''PWDDer Befehl 'Befehl hat im Befehl First EXEC () des Skripts verwendet, das eine Ausgabezeile zurückgibt. ''ls -laDer Befehl 'Befehl wurde im Befehl zweiter exec () verwendet, mit dem mehrere Ausgabezeilen zurückgegeben werden können. Wenn ein Befehl mehrere Zeilen zurückgibt, wird die Ausgabe die letzte Zeile als Ausgabe angezeigt.

// Speichern Sie die Ausgabe des ausgeführten Befehls
$ output1 = exec ('pwd');
// Den Rückgabewert drucken
echo $ output1;
Echo "
";
// Speichern Sie die letzte Zeile des ausgeführten Befehls
$ output2 = exec ('ls -la');
// Den Rückgabewert drucken
echo $ output2;
?>

Ausgang:

Die folgende Ausgabe wird angezeigt, nachdem das obige Skript vom Server ausgeführt wird. ''PWDDer Befehl gibt das aktuelle Arbeitsverzeichnis als Ausgabe zurück, der in der ersten Ausgabe angezeigt wird. ''ls -laDer Befehl gibt die Detailinformationen zur Liste der Verzeichnisse zurück, und die zweite Ausgabe zeigt die letzte Zeile aus der Befehlsausgabe an.

Beispiel 2: Drucken Sie alle Werte des ausgeführten Befehls aus

Im vorherigen Beispiel wird in der Funktion exec () kein optionales Argument verwendet. Das folgende Beispiel zeigt die Verwendung optionaler Argumente der Funktion exec (). Erstellen Sie eine PHP -Datei mit dem folgenden Skript. In diesem Skript werden zwei optionale Argumente von exec () verwendet. ''ls -l'Befehl wird in dem ersten Argument verwendet, das die Liste der Verzeichnisse zurückgibt. $ Output Variable wird hier verwendet, um die Ausgabe des Befehls in einem Array zu speichern. $ Status Variable wird verwendet, um den Rückgabestatuswert des ausgeführten Befehls zu speichern. Die Ausgabe des Befehls wird als Array gedruckt und jeder Wert des Ausgabearray.

// Speichern Sie die Ausgabe des ausgeführten Befehls in einem Array
exec ('ls -l', $ output, $ status);
// Drucken Sie alle Rückgabewerte des ausgeführten Befehls als Array aus
print_r ($ output);
Echo "
";
// Drucken Sie die Ausgabe des ausgeführten Befehls in jeder Zeile aus
foreach ($ output als $ value)

echo $ value."
";

// Drucken Sie den Rückgabestatus des ausgeführten Befehls
echo $ status;
?>

Ausgang:

Die folgende Ausgabe wird angezeigt, nachdem das obige Skript vom Server ausgeführt wird. Die Ausgabe zeigt das Array, das die Ausgabe des Befehls 'ls -l' und jeden Wert des Arrays in jeder Zeile enthält.

Beispiel-3: Drucken Sie alle PHP-Dateien des aktuellen Verzeichnisses aus

Das folgende Beispiel zeigt die Liste aller PHP -Dateien des aktuellen Verzeichnisses anhand der Funktion exec (). Hier das 'ls -l *.PhpHier wird hier der Befehl verwendet, um die Liste aller PHP -Dateien des aktuellen Verzeichnisses herauszufinden.

 Das Tag wird im Skript verwendet, um den Inhalt des Arrays mit dem strukturierten Format zu drucken.

// Speichern Sie die Ausgabe des ausgeführten Befehls in einem Array
exec ('ls -l *.PHP ', $ output);
// Drucken Sie die Ausgabe des ausgeführten Befehls
Echo "
";
print_r ($ output);
Echo "
";
?>

Ausgang:

Die folgende Ausgabe wird angezeigt, nachdem das obige Skript vom Server ausgeführt wird.

Beispiel-4: Führen Sie ein Bash-Skript aus

Wie jedes Bash -Skript durch die Verwendung der Funktion exec () ausgeführt werden kann, hat in diesem Beispiel gezeigt. Erstellen Sie eine Bash -Datei mit dem Namen Schleife.Sch mit dem folgenden Skript, das alle gleichmäßigen Zahlen von 1 bis 20 druckt.

Schleife.Sch

#!/Bin/Bash

#Initialisieren Sie den Zähler

Zähler = 1
#Lassen Sie die Schleife bis der $ counter -Wert kleiner oder gleich 20 betreiben

während [$ counter -le 20]
Tun
#Print der gleichmäßigen Zahlen

Wenn [[$ Counter%2 -eq 0]]]
Dann
#Print $ counter ohne Newline

echo "$ counter"
fi
#Increment $ counter von 1

((Zähler ++))
Erledigt

Erstellen Sie eine PHP -Datei mit dem folgenden Skript, um das Bash -Skript auszuführen. ''Schleife.Sch'wird als erstes Argument der exec () -Funktion verwendet, die die ausführt Schleife.Sch Skriptdatei. ''für jede'Schleife wird verwendet, um jeden Wert der zu drucken $ Output mit Raum.

// Führen Sie das Bash -Skript aus
Exec ('Bash Loop.sh ', $ output);
Echo "Alle sogar Zahlen innerhalb von 1-20 sind:
";
// Drucken Sie den Ourput mit der Schleife aus
foreach ($ output als $ value)

echo $ value."";

?>

Ausgang:

Die folgende Ausgabe wird angezeigt, nachdem das obige Skript vom Server ausgeführt wird. Die Ausgabe zeigt alle gleichmäßigen Zahlen innerhalb von 1 bis 20.

Beispiel-5: Ausführen von 'Dir'-Befehl mit exec () -Funktion

Der Befehl "Dir" funktioniert wie der Befehl "LS". Das folgende Beispiel zeigt, wie der Befehl 'dir' mit einem PHP -Skript ausgeführt werden kann. Erstellen Sie eine PHP $ Output und den Statuswert in der benannten Variablen $ Return. var_dump () Funktion wird hier verwendet, um die Struktur der zu drucken $ Output Array mit den Datentypinformationen.

// Befehl 'Dir' ausführen
exec ("dir", $ output, $ return);
// Den Rückgabestatuswert drucken
echo "Der Rückgabewert des Befehls 'Dir' ist $ return \ n";
Echo "
";
// Die Befehlsausgabe drucken
var_dump ($ output);
Echo "
";
?>

Ausgang:

Die folgende Ausgabe wird angezeigt, nachdem das obige Skript vom Server ausgeführt wird.

Abschluss:

In diesem Tutorial wurden verschiedene Verwendungszwecke der Funktion von Exec () erläutert, um den PHP -Codierern zu helfen, den Weg zur Ausführung des Shell -Befehls mithilfe des PHP -Skripts zu kennen. Einige andere Funktionen existieren auch in PHP, um dieselbe Art von Aufgabe zu erledigen.