Maison  >  Article  >  développement back-end  >  Exemple de code récapitulatif d'utilisation de la fonction de commande d'exécution externe PHP

Exemple de code récapitulatif d'utilisation de la fonction de commande d'exécution externe PHP

怪我咯
怪我咯original
2017-07-09 10:21:061161parcourir

Cet article présente principalement l'utilisation de la fonction de commande d'exécution externe PHP et analyse les compétences d'utilisation associées de l'exécutif et du système pour exécuter des commandes externes sous forme d'exemples. Les amis dans le besoin peuvent s'y référer

Le. des exemples de cet article décrivent l'utilisation des commandes externes PHP. Je le partage avec vous pour votre référence. Les détails sont les suivants :

Tout d'abord, je dois m'auto-examiner. J'apprends et j'utilise PHP depuis plus d'un an, et je le fais. j'étudie et utilise le système Linux depuis presque un an. En fait, je ne savais pas qu'un langage interprété comme php pouvait appeler directement des commandes d'exploitation pour contrôler le système...
Résumons d'abord les opérations Linux, je ne le ferai pas. mentionnez les cd, cp, mv, rm et ainsi de suite couramment utilisés. La première partie mérite d'être résumée. Un point est que les utilisateurs ordinaires doivent ajouter sudo avant la commande lors de l'extraction des autorisations root, puis la commande pour afficher le numéro de ligne. le viéditeur est : set nu.
Les fonctions intégrées de php exec et system peuvent appeler des commandes système (commandes shell). Cependant, si vous souhaitez utiliser ces deux fonctions, le mode sans échec dans php.ini. doit être désactivé, sinon PHP n'autorisera pas l'appel de commandes système pour des raisons de sécurité.

Jetez d'abord un œil à l'explication de ces deux fonctions dans le manuel php :

1. 🎜>

Syntaxe : string exec ( string command [, array &output [, int &return_var]] )


Explication :

exec ( ) exécution La commande donnée est une commande, mais elle ne génère rien. Elle renvoie simplement la dernière ligne du résultat de la commande. Si vous avez besoin d'exécuter une commande et d'obtenir toutes les informations de la commande, vous pouvez utiliser passthru(. ). fonction.

Si le tableau de paramètres 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().

2. système --- Exécuter un programme externe et afficher la sortie

Syntaxe : système de chaînes (commande de chaîne [, int &return_var])

Explication :

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.

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 sont utilisés pour appeler des commandes du shell système

La différence est la suivante :

exec peut renvoyer tous les résultats d'exécution à $output Dans le fichier. fonction (tableau), $status est l'état d'exécution. 0 est le succès et 1 est l'échec

systerm n'a pas besoin de fournir la fonction $output. De même, $return_var est le résultat. code d'état d'exécution. 0 est un échec. Le succès 1 signifie un échec

exemple d'exécution :

Ce qui suit est le contenu cité :

<?php
  $a = exec("dir",$out,$status);
  print_r($a);
  print_r($out);
  print_r($status);
?>
exemple de système :

Ce qui suit est le contenu cité :

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:
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