


À propos de la façon d'utiliser exec, system et d'autres fonctions pour appeler des commandes système en PHP
Cet article présente principalement la méthode d'utilisation des fonctions exec, system et autres pour appeler des commandes système en PHP. Il a une certaine valeur de référence. Maintenant, je le partage avec vous. Les amis dans le besoin peuvent s'y référer
. PHP en tant que langage de script côté serveur, il est entièrement capable d'effectuer des tâches telles que l'écriture de pages Web dynamiques simples ou complexes. Mais les choses ne sont pas toujours ainsi. Parfois, pour mettre en œuvre une certaine fonction, vous devez recourir à des programmes (ou commandes) externes du système d'exploitation. De cette façon, vous pouvez obtenir deux fois le résultat avec la moitié de l'effort.
Les fonctions intégrées de PHP exec et system peuvent être utilisées. Appelez des commandes système (commandes shell), et bien sûr passthru, escapeshellcmd et d'autres fonctions.
Dans de nombreux cas, l'utilisation des fonctions exec, system et autres de PHP pour appeler des commandes système peut nous aider à terminer notre travail mieux et plus rapidement. Par exemple, exec m'a beaucoup aidé lorsque je traitais par lots des fichiers .rar il y a deux jours.
Aujourd'hui, je vais trier les fonctions du système d'appel couramment utilisées et partager mon expérience avec tout le monde.
Remarque : Si vous souhaitez utiliser ces deux fonctions, le mode sans échec dans php.ini doit être désactivé, sinon php ne vous permettra pas d'appeler des commandes système pour des raisons de sécurité.
Regardez d'abord l'explication de ces deux fonctions dans le manuel PHP :
exec --- Exécuter des programmes externes
Syntaxe : string exec ( string command [, array &output [, int &return_var]] )
Explication :
exec() exécute la commande donnée, mais elle ne produit rien, elle prend simplement la commande La dernière La ligne est renvoyée dans le résultat. Si vous devez exécuter une commande et obtenir toutes les données de la commande, vous pouvez utiliser la fonction passthru().
Si le tableau d'arguments est donné, le tableau spécifié sera rempli avec chaque ligne sortie par la commande Remarque : Si le tableau contient déjà certains éléments, exec() l'ajoutera au tableau plus tard, si. vous ne voulez pas que cette fonction ajoute des éléments, vous pouvez appeler unset() avant de passer le tableau à exec().
Si les paramètres array et return_var sont donnés, la commande status retournée à l'exécution sera écrite dans cette variable.
Remarque : Si vous autorisez la transmission des données provenant des entrées de l'utilisateur à cette fonction, vous devez alors utiliser escapeshellcmd() pour vous assurer que l'utilisateur ne peut pas tromper le système en lui faisant exécuter des commandes arbitraires.
Remarque : Si vous utilisez cette fonction pour démarrer un programme et que vous souhaitez le laisser s'exécuter en arrière-plan, vous devez vous assurer que la sortie du programme est redirigée vers un fichier ou un autre flux de données de sortie, sinon PHP se bloquera jusqu'à la fin de l'exécution du programme.
system --- Exécuter des programmes externes et afficher la sortie
Syntaxe : string system ( string command [, int &return_var] )
Description :
system() exécute la commande donnée et affiche le résultat. Si le paramètre return_var est donné, le code d'état de la commande exécutée sera écrit dans cette variable.
Remarque : Si vous autorisez la transmission des données provenant des entrées de l'utilisateur à cette fonction, vous devez alors utiliser escapeshellcmd() pour vous assurer que l'utilisateur ne peut pas tromper le système en lui faisant exécuter des commandes arbitraires.
Remarque : Si vous utilisez cette fonction pour démarrer un programme et que vous souhaitez le laisser s'exécuter en arrière-plan, vous devez vous assurer que la sortie du programme est redirigée vers un fichier ou un autre flux de données de sortie, sinon PHP se bloquera jusqu'à la fin de l'exécution du programme.
Si PHP s'exécute en tant que module serveur, system() tentera d'effacer automatiquement le tampon de sortie du serveur Web après la sortie de chaque ligne.
Renvoie la dernière ligne de la commande en cas de succès, false en cas d'échec.
Si vous devez exécuter une commande et obtenir toutes les données de la commande, vous pouvez utiliser la fonction passthru().
Ces deux éléments sont utilisés pour appeler des commandes du shell système,
La différence :
exec peut renvoyer tous les résultats d'exécution à la fonction $output (array), $status est le statut d'exécution, 0 est le succès, 1 est l'échec
Systerm n'a pas besoin de fournir la fonction $output, il renvoie directement le résultat De même, $return_var est le code d'état de l'exécution, 0 est le succès, 1 est un échec
exemple d'exécution :
<?php $a = exec("dir",$out,$status); print_r($a); print_r($out); print_r($status); ?>
exemple de système :
<?php $a = system("dir",$out); print_r($a); print_r($out); ?>
system, exce, passthru différence
system() génère et renvoie la dernière ligne de résultats du shell.
exec() ne génère pas de résultats et renvoie la dernière ligne de résultats du shell. Tous les résultats peuvent être enregistrés dans un tableau renvoyé.
passthru() appelle uniquement la commande et affiche le résultat de l'exécution de la commande directement sur le périphérique de sortie standard tel quel.
Même point : vous pouvez obtenir le code d'état de l'exécution de la commande
Ce qui précède est l'intégralité du contenu de cet article. J'espère qu'il sera utile à l'apprentissage de chacun. Pour plus de contenu connexe, veuillez prêter attention à. le site PHP chinois !
Recommandations associées :
Analyse de la fonction filter_var() et de la fonction Filter en PHP
Analyse de la vulnérabilité de substitution str_replace en php
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Solution au problème selon lequel php exec ne peut pas être exécuté : 1. Recherchez le fichier de configuration php php.ini, recherchez "disable_functions" dans le fichier et supprimez "exec" et "shell_exec" 2. Accédez au serveur pour modifier le fichier ; autorisations du fichier ; 3. Modifier la configuration. Le mode sans échec est "safe_mode=On".

Interprétation du document Java : analyse de l'utilisation de la méthode currentTimeMillis() de la classe System, des exemples de code spécifiques sont requis. En programmation Java, la classe System est une classe très importante, qui encapsule certaines propriétés et opérations liées au système. Parmi elles, la méthode currentTimeMillis est une méthode très couramment utilisée dans la classe System. Cet article expliquera la méthode en détail et fournira des exemples de code. 1. Présentation de la méthode currentTimeMillis

Le système Win10 est un système très facile à utiliser et très intelligent. Sa forte compatibilité peut garantir que le système ne rencontrera pratiquement aucun problème lors d'une utilisation normale. Cependant, à mesure que les gens continuent à utiliser le système Win10, le système le fera également parfois. Vous avez des problèmes. Le problème du code de terminaison d'écran bleu de démarrage de Win10 SystemServiceException. Aujourd'hui, je vais vous apporter la solution au code de terminaison d'écran bleu de démarrage de Win10 SystemServiceException. Si vous en avez besoin, veuillez le télécharger rapidement. Solution à l'écran bleu win10systemserviceexception : Méthode 1 : 1. Utilisez la touche Windows + R pour ouvrir Exécuter et entrez « contr

Solution aux résultats d'exécution php tronqués : 1. Ouvrez le fichier de code PHP correspondant ; 2. Affichez le code dans exec; 3. Modifiez le contenu en "exec("python cmd.py",$str); foreach($str as $ res){$str = iconv("GBK", "UTF-8", $res);}echo $str;".

Le système informatique est un processus système relativement courant. Vous verrez souvent système lors de la visualisation du processus. Ce processus signifie simplement le système informatique, cependant, si le processus system.exe apparaît sur l'ordinateur, il doit être supprimé à temps. il s'agit d'un fichier généré par un virus cheval de Troie. Il n'y a pas de suffixe exe derrière le système réel.

Object est la classe de base de toutes les classes Java, le sommet de toute la structure d'héritage de classe et la classe la plus abstraite. Tout le monde utilise toString(), equals(), hashCode(), wait(), notify(), getClass() et d'autres méthodes tous les jours. Peut-être qu'ils ne réalisent pas qu'il s'agit de méthodes d'Object et ne regardent pas non plus quoi. d'autres méthodes dont dispose Object. Et réfléchissez à la raison pour laquelle ces méthodes devraient être placées dans Object. 1. Introduction à la classe JavaObject - la super classe de toutes les classes. Object est une classe spéciale dans la bibliothèque de classes Java et est également la classe parent de toutes les classes. En d’autres termes, Java permet d’attribuer n’importe quel type d’objet au type Objet

Description de la fonction La commande exec est utilisée sous Linux pour appeler et exécuter les commandes spécifiées. La commande exec est généralement utilisée dans les scripts shell pour exécuter d'autres commandes. Lors de l'utilisation de la commande exec dans le terminal actuel, la commande spécifiée remplacera le processus actuel après l'exécution, au lieu de créer un nouveau processus enfant. Syntaxe de la commande exec [option] Signification de l'option Signification de l'option -c Utiliser un environnement vide pour exécuter -ashell transmettra le nom comme paramètre zéro à la commande exécutée -l Placer un tiret au début du shell Les paramètres sont transmis à la référence de la commande Exemple Exemple 1// Utilisez d'abord la commande echo pour afficher le texte "www.linuxyz.cn": [root@bunian~]#echoww

Je pense que les internautes connaissent très bien le système Windows 7. Avez-vous entendu parler du système Windows 7 en version anglaise ? Je crois que de nombreux internautes ont entendu parler du système Windows 7 en version anglaise. Cependant, certains amis recherchent la version anglaise de Windows 7. système de version à télécharger. Aujourd'hui, l'éditeur va partager l'introduction de la version originale de win7 en anglais avec tout le monde, afin que les internautes puissent comprendre la version originale de win7 en anglais. Ce qui suit est pour vous indiquer où télécharger la version anglaise du système Windows 7. Le système anglais original de win7 a été publié sur MSDN pour téléchargement par abonnement. La version officielle intégrée en anglais a été publiée pour la première fois, Windows7WithSP1, qui est l'image du CD Windows7 avec SP1 intégré. Inclut SP1 autonome pour plusieurs langues
