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.php
Nous allons implémenter deux scripts dans notre fichier. Tout d’abord, nous utiliserons shell_exec();
la fonction Ouvrir .sh
un 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.sh
fichier 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 .sh
et .sh
l'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:
[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 calc
plutô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.php
fichier 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 à $open
une variable. Ce script exécutera votre commande directement dans le shell Windows (CLI dans cet exemple).
Sortir:
Nous avions l'habitude d' shell_exec();
exécuter une commande cmd pour faire un ping facebook.com
dans le code ci-dessus. Cependant, vous pouvez taper n'importe quelle commande dans les paramètres de la fonction et cela fonctionnera.