Maison développement back-end tutoriel php À propos de la façon d'utiliser exec, system et d'autres fonctions pour appeler des commandes système en PHP

À propos de la façon d'utiliser exec, system et d'autres fonctions pour appeler des commandes système en PHP

Jun 21, 2018 pm 02:55 PM
exec system

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); 
?>
Copier après la connexion

exemple de système :

<?php 
$a = system("dir",$out); 
print_r($a); 
print_r($out); 
?>
Copier après la connexion

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 :

À propos de la méthode de preg_replace() en PHP pour remplacer régulièrement toutes les chaînes qualifié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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

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 !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

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

Que faire si l'exécutable php ne peut pas être exécuté Que faire si l'exécutable php ne peut pas être exécuté Nov 22, 2022 am 10:16 AM

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 de la documentation Java : Analyse de l'utilisation de la méthode currentTimeMillis() de la classe System Interprétation de la documentation Java : Analyse de l'utilisation de la méthode currentTimeMillis() de la classe System Nov 03, 2023 am 09:30 AM

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

Erreur d'écran bleu Win10 : exception du service système Erreur d'écran bleu Win10 : exception du service système Dec 29, 2023 pm 04:04 PM

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

Que faire si les résultats de l'exécution de PHP sont tronqués Que faire si les résultats de l'exécution de PHP sont tronqués Oct 21, 2022 am 10:17 AM

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;".

Quel est le système informatique ? Quel est le système informatique ? Feb 22, 2023 am 10:25 AM

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.

Comment utiliser la classe Object et la classe System en Java ? Comment utiliser la classe Object et la classe System en Java ? Apr 23, 2023 pm 11:28 PM

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

Manuel de commande d'exécution Linux Manuel de commande d'exécution Linux Feb 18, 2024 pm 04:42 PM

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

téléchargement du système version anglaise Windows7 téléchargement du système version anglaise Windows7 Jul 15, 2023 pm 07:45 PM

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

See all articles