Exécutez le script Shell en PHP et ouvrez le fichier Shell

PHP nous permet d'utiliser shell_exec();des fonctions qui traitent les fichiers shell. Cependant, si votre système d'exploitation est Windows, vous devriez envisager d'utiliser les fonctions popen()et pclose(), car le tube est exécuté en mode texte, ce qui empêche généralement sa sortie binaire.

shell.phpNous allons implémenter deux scripts dans notre fichier. Tout d’abord, nous utiliserons shell_exec();la fonction Ouvrir .shun fichier.

Nous utiliserons ensuite pour shell_exec()ouvrir l'interface cmd et exécuter quelques commandes Windows.

[Utiliser pour shell_exec()exécuter le fichier shell en mode texte]

Syntaxe et paramètres de la fonction : shell_exec(string $cmd);. Cette fonction renvoie la sortie du shell au format chaîne.

Nous avons créé un demo.shfichier de démonstration dans ce tutoriel.

Code ( demo.sh) :

#!/bin/sh
echo "Hello world";
echo "This is a shell .sh file for demo";
// your shell commands go here

Vous pouvez créer un fichier à l'aide de n'importe quel éditeur de texte .shet .shl'enregistrer avec l'extension de fichier. Après cela, veuillez exécuter le script PHP suivant ( shell.php) pour l'ouvrir dans le bloc-notes car il lance le format de chaîne en mode texte.

<!DOCTYPE html>
<head>
  <title>
    Run Shell File in PHP and open CLI (shell) to run shell scripts 
     </title>
</head>
</head>
   <form action="shell.php" method ="post" align="center">
      <input type="submit" value="Open .sh file using shell_exec() in PHP" name="openshellfile" />
      <input type="submit" value="Run cmd/shell on Windows using shell_exec() in PHP" name="opencmd" />

   </form>
    </body>
        </html>
<?php
// When user submits the form 
if(isset($_POST['openshellfile'])){
    
    
echo $res=shell_exec('PATH to the file/demo.sh');
}
?>

Sortir:

Ouvrir le fichier shell avec php

[Utiliser dans CLI pour shell_exec()renvoyer le format binaire]

shell_exec()Les fonctions peuvent être utilisées pour diverses fonctions. Notre approche est shell_exec()un excellent moyen d'utiliser sans avoir à exécuter des fonctions en arrière-plan.

Vous n’avez pas non plus besoin d’utiliser popen()ou pclose().

<?php
// Ping facebook cmd (shell)
// open cmd shell
if (isset($_POST['opencmd']))
{
    
    
    //You do not need to use popen() or pclose() either to run this shell command
    // 您可以在此处添加任何命令,
    //例如,您可以控制您的窗口 (CLI)
    //您只会在 cmd.ex /k “您的命令”之后更改命令
    $open = shell_exec('start cmd.exe /k ping "facebook.com"');
    echo $open;
    //function shell($open) {
    
    
    //检查您的 PHP 版本
}
?>

Bien que nous puissions exécuter n'importe quelle commande à l'aide de notre script, nous effectuons uniquement un ping facebook.com. Par exemple, si vous souhaitez ouvrir une calculatrice via cette fonctionnalité, saisissez calcplutôt ping "facebook.com".

Avant d'ajouter le code ci-dessus dans votre script PHP, vous devez d'abord modifier le nom du champ de saisie dans le HTML. Ajoutez ensuite le code ci-dessus au shell.phpfichier que nous avons exécuté précédemment.

La portée de la commande peut être n'importe quoi, vous pouvez taper n'importe quelle commande Windows et l'attribuer à $openune variable. Ce script exécutera votre commande directement dans le shell Windows (CLI dans cet exemple).

Sortir:

Exécutez la commande cmd avec php

Nous avions l'habitude d' shell_exec();exécuter une commande cmd pour faire un ping facebook.comdans le code ci-dessus. Cependant, vous pouvez taper n'importe quelle commande dans les paramètres de la fonction et cela fonctionnera.

Je suppose que tu aimes

Origine blog.csdn.net/weixin_50251467/article/details/131776916
conseillé
Classement