Exécuter la commande shell en php en utilisant

Exécuter la commande shell en php en utilisant

Le script PHP est principalement utilisé pour développer des applications Web, mais il peut également être utilisé à d'autres fins. PHP a des fonctions intégrées pour exécuter des commandes liées au système. exec () est l'un d'eux. Il est utilisé pour exécuter des commandes shell ou tout programme à partir du script PHP. Comment cette fonction peut être utilisée dans PHP est indiquée dans ce tutoriel.

Syntaxe:

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

Cette fonction peut prendre trois arguments. Le premier argument est obligatoire qui prendra la commande système. Les deux autres arguments sont facultatifs. Le deuxième argument est utilisé pour stocker la sortie de la commande dans un tableau. Le troisième argument de cette fonction est utilisé pour stocker l'état de retour de la commande exécutée. Cette fonction renvoie la dernière ligne de la sortie de commande exécutée.

Exemple-1: utilisation de la fonction exec () sans arguments facultatifs

L'utilisation de base de la fonction exec () s'est montrée dans ce tutoriel. Créez un fichier PHP avec le script suivant pour savoir comment la fonction exec () renvoie la sortie de la commande. 'PWD'La commande a utilisée dans la première commande exec () du script qui renvoie une ligne de sortie. 'LS -LA'La commande a été utilisée dans la deuxième commande exec () qui peut renvoyer plusieurs lignes de sortie. Si une commande renvoie plusieurs lignes, la sortie affichera la dernière ligne en tant que sortie.

// Stockez la sortie de la commande exécutée
$ output1 = exec ('pwd');
// imprime la valeur de retour
Echo $ output1;
écho "
"
// Stockez la dernière ligne de la commande exécutée
$ output2 = exec ('ls -La');
// imprime la valeur de retour
Echo $ output2;
?>

Sortir:

La sortie suivante apparaîtra après avoir exécuté le script ci-dessus à partir du serveur. 'PWD'La commande renvoie le répertoire de travail actuel comme la sortie qui est affichée dans la première sortie. 'LS -LA'Commande renvoie les informations sur les informations de la liste des répertoires et la deuxième sortie affiche la dernière ligne de la sortie de commande.

Exemple-2: Imprimez toutes les valeurs de la commande exécutée

Dans l'exemple précédent, aucun argument facultatif n'est utilisé dans la fonction exec (). L'exemple suivant montre l'utilisation d'arguments facultatifs de la fonction exec (). Créer un fichier PHP avec le script suivant. Deux arguments facultatifs d'EXEC () sont utilisés dans ce script. 'ls -l'La commande est utilisée dans le premier argument qui renvoie la liste des répertoires. $ sortie La variable est utilisée ici pour stocker la sortie de la commande dans un tableau. $ statut La variable est utilisée pour stocker la valeur d'état de retour de la commande exécutée. La sortie de la commande sera imprimée en tant que tableau et chaque valeur du tableau de sortie sera imprimée en utilisant la boucle 'for'.

// Stockez la sortie de la commande exécutée dans un tableau
exec ('ls -l', $ output, $ status);
// imprime toutes les valeurs de retour de la commande exécutée sous forme de tableau
print_r ($ output);
écho "
"
// imprime la sortie de la commande exécutée dans chaque ligne
foreach ($ Sorput as $ valeur)

Echo $ valeur."
"

// imprime l'état de retour de la commande exécutée
Echo $ statut;
?>

Sortir:

La sortie suivante apparaîtra après avoir exécuté le script ci-dessus à partir du serveur. La sortie montre le tableau qui contient la sortie de la commande, «ls -l» et chaque valeur du tableau dans chaque ligne.

Exemple-3: Imprimez tous les fichiers PHP du répertoire actuel

L'exemple suivant montre la liste de tous les fichiers PHP du répertoire actuel en utilisant la fonction EXEC (). Ici le 'ls -l *.php'La commande est utilisée ici pour découvrir la liste de tous les fichiers PHP du répertoire actuel.

 La balise est utilisée dans le script pour imprimer le contenu du tableau avec le format structuré.

// Stockez la sortie de la commande exécutée dans un tableau
exec ('ls -l *.php ', $ output);
// imprime la sortie de la commande exécutée
écho "
"
print_r ($ output);
écho "
"
?>

Sortir:

La sortie suivante apparaîtra après avoir exécuté le script ci-dessus à partir du serveur.

Exemple-4: exécutez un script bash

Comment tout script bash peut être exécuté à l'aide de la fonction exec () s'est montré dans cet exemple. Créer un fichier bash nommé boucle.shot avec le script suivant qui imprimera tous les nombres même de 1 à 20.

boucle.shot

#!/ bac / bash

#Initialisez le comptoir

compteur = 1
#Iter la boucle jusqu'à ce que la valeur de compteur $ soit inférieure ou égale à 20

tandis que [$ Counter -le 20]
faire
# Printent les nombres pair

Si [[$ Counter% 2 -eq 0]]
alors
#Print $ compteur sans newline

écho "$ compteur"
Fi
#Increment $ compteur par 1

((compteur ++))
fait

Créez un fichier PHP avec le script suivant pour exécuter le script bash. 'boucle de bash.shot'est utilisé comme premier argument de la fonction exec () qui exécutera le boucle.shot Fichier de script. 'pour chaque'LOOP est utilisé pour imprimer chaque valeur du $ sortie avec de l'espace.

// Exécute le script bash
exec ('boucle de bash.sh ', $ output);
Echo "Tous les nombres même dans 1-20 sont:
"
// Imprime le notre débit à l'aide de la boucle
foreach ($ Sorput as $ valeur)

Echo $ valeur."";

?>

Sortir:

La sortie suivante apparaîtra après avoir exécuté le script ci-dessus à partir du serveur. La sortie montre tous les nombres même dans les 1 à 20.

Exemple-5: Exécuter la commande 'dir' en utilisant Exec ()

La commande 'dir' fonctionne comme la commande 'LS'. L'exemple suivant montre comment la commande 'dir' peut être exécutée à l'aide d'un script PHP. Créez un fichier PHP avec le script suivant qui stocke la sortie de la commande 'dir' dans le tableau nommé $ sortie et la valeur d'état dans la variable nommée $ retour. Fonction var_dump () est utilisé ici pour imprimer la structure du $ sortie tableau avec les informations de type de données.

// Exécuter la commande 'dir'
exec ("dir", $ output, $ return);
// Imprime la valeur d'état de retour
Echo "La valeur de retour de la commande 'dir' est $ return \ n";
écho "
"
// imprime la sortie de commande
var_dump ($ output);
écho "
"
?>

Sortir:

La sortie suivante apparaîtra après avoir exécuté le script ci-dessus à partir du serveur.

Conclusion:

Différentes utilisations de la fonction exec () ont été expliquées dans ce tutoriel pour aider les codeurs PHP à connaître la façon d'exécuter la commande shell en utilisant le script PHP. Certaines autres fonctions existent également dans PHP pour effectuer le même type de tâche.