Comment exécuter des commandes shell via PHP

Ce post traite de la façon d’exécuter des commandes shell via PHP. Ainsi, plutôt que de saisir manuellement une commande dans Linux pour rechercher la structure des dossiers, vous le faites de manière programmatique via PHP. La possibilité d’exécuter des commandes shell via PHP est une fonctionnalité puissante qui doit être utilisée avec précaution. Tous les fournisseurs d’hébergement ne vous permettront pas d’exécuter des commandes shell via PHP.

La fonction PHP pour exécuter la commande shell est : shell_exec(), exec() ou system().

Ces fonctions sont très similaires, mais présentent de légères différences :

  • shell_exec() renvoie la sortie complète sous forme de chaîne de caractères. La chaîne peut être NULL lorsqu’une erreur se produit ou si la commande ne produit aucune sortie.
  • exec() renvoie la dernière ligne de la commande exécutée sous forme de chaîne. NOTE : Utilisez exec() lorsque vous avez besoin d’accéder à la sortie du programme. shell_exec() ne fournit pas les informations sur le code de sortie du programme.
  • system() est similaire à shell_exec() mais affiche directement la sortie (sans utiliser echo() ou print()).

shell_exec() & exec() exemple:

Ces deux fonctions shell fonctionnent de la même manière. Notez les différences mentionnées précédemment.

<?echo shell_exec("ls / -ltr");?>

Résultat:

total 2097248 drwxr-xr-x 2 root root 4096 Apr 26 19:07 opt drwxr-xr-x 2 root root 4096 Apr 26 19:07 media drwxr-xr-x 2 root root 4096 Apr 26 19:07 lib64 lrwxrwxrwx 1 root root ….

La réponse contient \n des sauts de ligne. Utilisez str_replace(« \n », « <BR> », shell_exec(« ls / -ltr »)) pour remplacer les caractères de nouvelle ligne par des BR adaptés au HTML.

Exemple:

total 2097248drwxr-xr-x 2 root root 4096 Apr 26 19:07 optdrwxr-xr-x 2 root root 4096 Apr 26 19:07 mediadrwxr-xr-x 2 root root 4096 Apr 26 19:07 lib64

exemple de system():

La fonction system() est également utilisée pour exécuter des commandes shell via PHP.

<?system("ls / -ltr");?>

Résultat:

total 2097248 drwxr-xr-x 2 root root 4096 Apr 26 19:07 opt drwxr-xr-x 2 root root 4096 Apr 26 19:07 media drwxr-xr-x 2 root root 4096 Apr 26 19:07 lib64 lrwxrwxrwx 1 root root ….

Visitez https://anto.onlinepour plus de posts sur PHP!

A propos des auteurs

Chaque membre de l’équipe éditoriale d’Anto est un expert du Cloud à part entière. Anto Online est très fier d’aider ses collègues passionnés de cloud. Faites-nous savoir si vous avez une excellente idée pour le prochain sujet !

Soutiens la cause

Soutiens Anto Online et achètes-nous un café. Tout est possible avec du café et du code.

Achetez-moi un café

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.