php

Ausführen des Shell-Befehls in PHP mit exec()

Ausführen des Shell-Befehls in PHP mit exec()

Das PHP-Skript wird hauptsächlich für die Entwicklung von Webanwendungen verwendet, kann aber auch für andere Zwecke verwendet werden. PHP hat einige eingebaute Funktionen, um systembezogene Befehle auszuführen. exec() ist einer von ihnen. Es wird verwendet, um Shell-Befehle oder ein beliebiges Programm aus dem PHP-Skript auszuführen. Wie diese Funktion in PHP verwendet werden kann, zeigt dieses Tutorial.

Syntax:

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

Diese Funktion kann drei Argumente annehmen. Das erste Argument ist obligatorisch und nimmt den Systembefehl an. Die anderen beiden 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ückgabestatus des ausgeführten Befehls zu speichern. Diese Funktion gibt die letzte Zeile der ausgeführten Befehlsausgabe zurück.

Beispiel-1: Verwendung der Funktion exec() ohne optionale Argumente

Die grundlegende Verwendung der Funktion exec() wurde in diesem Tutorial gezeigt. Erstellen Sie eine PHP-Datei mit dem folgenden Skript, um zu erfahren, wie die Funktion exec() die Befehlsausgabe zurückgibt.  'pwd'-Befehl wurde im ersten exec()-Befehl des Skripts verwendet, das eine Ausgabezeile zurückgibt. 'ls -la'-Befehl wurde im zweiten exec()-Befehl verwendet, der mehrere Ausgabezeilen zurückgeben kann. Wenn ein Befehl mehrere Zeilen zurückgibt, zeigt die Ausgabe die letzte Zeile als Ausgabe an.

//Speichere die Ausgabe des ausgeführten Befehls
$output1 =  exec('pwd');
//Rückgabewert ausgeben
echo $ausgabe1;
Echo"
";
//Speichere die letzte Zeile des ausgeführten Befehls
$ausgabe2 = exec('ls -la');
//Rückgabewert ausgeben
echo $ausgabe2;
?>

Ausgabe:

Die folgende Ausgabe wird angezeigt, nachdem das obige Skript vom Server ausgeführt wurde. 'pwd'-Befehl gibt das aktuelle Arbeitsverzeichnis als Ausgabe zurück, die in der ersten Ausgabe angezeigt wird. 'ls -la' Befehl gibt die Detailinformationen der Verzeichnisliste zurück und die zweite Ausgabe zeigt die letzte Zeile der Befehlsausgabe.

Beispiel-2: Alle Werte des ausgeführten Befehls ausgeben

Im vorherigen Beispiel wird in der Funktion exec() kein optionales Argument verwendet used. 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 im ersten Argument verwendet, das die Liste der Verzeichnisse zurückgibt. $Ausgabe 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 ausgegeben und jeder Wert des Ausgabearrays wird mit der 'for'-Schleife ausgegeben.

//Speichere die Ausgabe des ausgeführten Befehls in einem Array
exec('ls -l', $ausgabe, $status);
//Alle Rückgabewerte des ausgeführten Befehls als Array ausgeben
print_r($Ausgabe);
Echo"
";
//Ausgabe des ausgeführten Befehls in jeder Zeile ausgeben
foreach($Ausgabe als $Wert)

echo $wert."
";

//Rückgabestatus des ausgeführten Befehls ausgeben
echo $status;
?>

Ausgabe:

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

Beispiel-3: Alle PHP-Dateien des aktuellen Verzeichnisses drucken

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

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

//Speichere die Ausgabe des ausgeführten Befehls in einem Array
exec('ls -l *.php', $ausgabe);
//Ausgabe des ausgeführten Befehls ausgeben
Echo"
";
print_r($Ausgabe);
Echo"
";
?>

Ausgabe:

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

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

Wie ein beliebiges Bash-Skript mit der Funktion exec() ausgeführt werden kann, hat dieses Beispiel gezeigt. Erstellen Sie eine Bash-Datei mit dem Namen Schleife.Sch mit dem folgenden Skript, das alle geraden Zahlen von 1 bis 20 druckt.

Schleife.Sch

#!/bin/bash

#Initialisierung des Zählers

Zähler=1
#Iteriere die Schleife, bis der Wert von $counter kleiner oder gleich 20 . ist

while [ $counter -le 20 ]
tun
#Drucke die geraden Zahlen

if [[ $counter%2 -eq 0 ]]
dann
#$counter ohne Zeilenumbruch drucken

echo  "$counter"
fi
#Zähler um 1 erhöhen

((Zähler++))
getan

Erstellen Sie eine PHP-Datei mit dem folgenden Skript, um das Bash-Skript auszuführen. 'Bash-Loop.Sch' wird als erstes Argument der exec()-Funktion verwendet, die die Schleife.Sch Skriptdatei. 'für jedes'-Schleife wird verwendet, um jeden Wert der $Ausgabe mit Platz.

//Führe das Bash-Skript aus
exec('bash-Schleife.sh', $Ausgabe);
echo "Alle geraden Zahlen innerhalb von 1-20 sind:
";
//Drucken Sie die Ausgabe mit Schleife
foreach($Ausgabe als $Wert)

echo $wert."";

?>

Ausgabe:

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

Beispiel-5: Führen Sie den Befehl 'dir' mit der Funktion exec() aus

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-Datei mit dem folgenden Skript, das die Ausgabe des Befehls 'dir' im Array namens . speichert $Ausgabe und der Statuswert in der Variablen namens $Rückgabe. var_dump()-Funktion wird hier verwendet, um die Struktur des $Ausgabe Array mit den Datentypinformationen.

// Befehl 'dir' ausführen
exec("dir", $ausgabe, $return);
//Drucken Sie den Rückgabestatuswert
echo "Der Rückgabewert des 'dir'-Befehls ist $return\n";
Echo"
";
//Drucken Sie die Befehlsausgabe
var_dump($Ausgabe);
Echo"
";
?>

Ausgabe:

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

Fazit:

In diesem Tutorial wurden verschiedene Verwendungen der Funktion exec() erklärt, um den PHP-Programmierern zu helfen, den Shell-Befehl mithilfe des PHP-Skripts auszuführen. Einige andere Funktionen gibt es auch in PHP, um die gleiche Art von Aufgabe zu erledigen.

Schlacht um Wesnoth 1.13.6 Entwicklung veröffentlicht
Schlacht um Wesnoth 1.13.6, das letzten Monat veröffentlicht wurde, ist die sechste Entwicklungsversion im 1.13.x-Serie und bietet eine Reihe von Verb...
So installieren Sie League of Legends auf Ubuntu 14.04
Wenn Sie ein Fan von League of Legends sind, dann ist dies eine Gelegenheit für Sie, League of Legends zu testen. Beachten Sie, dass LOL von PlayOnLin...
Installieren Sie das neueste OpenRA-Strategiespiel auf Ubuntu Linux
OpenRA ist eine Libre/Free Real Time Strategy Game Engine, die die frühen Westwood-Spiele wie den Klassiker Command & Conquer: Red Alert Red nachbilde...