Maison > développement back-end > Problème PHP > Quelle est la différence entre système et exécutable en php

Quelle est la différence entre système et exécutable en php

青灯夜游
Libérer: 2023-03-05 15:14:01
original
4327 Les gens l'ont consulté

La différence entre system et exec en PHP est la suivante : le système exécute un programme externe et affiche le résultat, et il peut générer et renvoyer des résultats ; exec exécute un programme externe et ne génère pas de résultats mais renvoie la dernière ligne de le résultat.

Quelle est la différence entre système et exécutable en php

Pour appeler des commandes externes en PHP, vous pouvez utiliser exec et system. Alors, quelles sont les différences entre eux ? Cet article vous présentera la différence entre système et exécutable en PHP.

1. exec ---Exécuter le programme externe

string exec ( string $command [, array &$output [, int &$return_var ]] )
Copier après la connexion

$command : commande shell à exécuter

$output : la sortie de la commande shell remplit ce tableau et chaque ligne de sortie remplit un élément du tableau. Veuillez noter que si le tableau contient déjà certains éléments, la fonction exec() ajoutera le contenu à la fin du tableau. Si vous ne souhaitez pas ajouter à la fin du tableau, utilisez la fonction unset() pour réinitialiser le tableau avant de le transmettre à la fonction exec().

$return_var Statut de retour après l'exécution de la commande, La valeur de réussite de l'exécution de la commande est 0

Valeur de retour : la dernière ligne sortie par la commande shell

ps : 2>&1 exec échoue. Une astuce pour le débogage consiste à utiliser une commande de pipeline en utilisant 2>&1, la commande affichera l'erreur lors de l'exécution du shell. la variable $output , affiche cette variable à analyser.

Exemple 1

(1) Où le code se trouve La structure du fichier index.php

 

(2 ) Code

$out = [34];
$res = exec('ls 2>&1',$out,$return_status);
var_dump($res);
echo '------';
var_dump($out);
echo '------';
var_dump($return_status);
Copier après la connexion

(3) Résultat de l'exécution

zhangxueqing:demo playcrab$ php  ./1/index.php
/Users/playcrab/www/demo/1/index.php:10:
string(11) "webuploader"
------/Users/playcrab/www/demo/1/index.php:12:
array(10) {
  [0] =>
  int(34)
  [1] =>
  string(1) "1"
  [2] =>
  string(6) "1.html"
  [3] =>
  string(5) "1.php"
  [4] =>
  string(10) "client.php"
  [5] =>
  string(14) "design-pattern"
  [6] =>
  string(3) "img"
  [7] =>
  string(17) "jquery.blockUI.js"
  [8] =>
  string(10) "static.php"
  [9] =>
  string(11) "webuploader"
}
------/Users/playcrab/www/demo/1/index.php:14:
int(0)
Copier après la connexion

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

string system ( string $command [, int &$return_var ] )
Copier après la connexion

$command La commande à exécuter

$return_var L'état de retour après l'exécution de la commande, La valeur est 0 indiquant le succès

Résultat du retour :

  • renvoie 0 avec succès,

  • échoue (la commande n'existe pas, etc.) et renvoie une valeur non nulle

1. Exemple de code

$res = system('ls 2>&1',$return_status);var_dump($res);echo '------';var_dump($return_status);
Copier après la connexion

2. Résultats de sortie

Résumé :

Fonction system() Tout comme dans d'autres langages, elle exécute la commande donnée, imprime et renvoie les résultats. Le deuxième paramètre est facultatif et est utilisé pour obtenir le code d'état après l'exécution de la commande.

La fonction exec() est similaire à system(). Elle exécute également la commande donnée, mais ne génère pas le résultat. , mais renvoie le résultat de la dernière ligne. Bien qu'il ne renvoie que la dernière ligne du résultat de la commande, l'utilisation du deuxième tableau de paramètres permet d'obtenir le résultat complet en ajoutant les résultats ligne par ligne à la fin du tableau. Donc si le tableau n'est pas vide, il est préférable d'utiliser unset() pour l'effacer avant de l'appeler. Ce n'est que lorsque le deuxième paramètre est spécifié que le troisième paramètre peut être utilisé pour obtenir le code d'état d'exécution de la commande.

Recommandé : "Tutoriel vidéo 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!

Étiquettes associées:
source:php.cn
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal