PHP Manual
/
Administration du serveur

Différences entre CLI et CGI

15. 10. 2021

PHP peut fonctionner dans différents environnements. L'environnement le plus courant est `CGI`, qui s'exécute lorsque PHP traite une requête HTTP. Cependant, il est également possible d'exécuter un script PHP à partir du terminal. Dans ce cas, il s'agit d'une tâche dite CLI (Command-line interface).

Les différences les plus importantes entre CLI et CGI

  • Contrairement à CGI SAPI, CLI n'écrit pas d'en-tête sur la sortie par défaut.
  • Il y a certaines directives php.ini qui sont remplacées dans CLI SAPI parce qu'elles n'ont pas de sens dans un environnement shell :
    • html_errors : La valeur par défaut de CLI est FALSE.
    • implicit_flush : la valeur par défaut de l'interface CLI est TRUE.
    • max_execution_time : la valeur par défaut en CLI est 0 (illimité)
    • register_argc_argv : la valeur CLI par défaut est TRUE.
  • Le script peut prendre des arguments en ligne de commande ! La variable $argc vous donne le nombre d'arguments passés à l'application. Et le champ $argv vous donne un tableau d'arguments réels
  • Il y a 3 nouvelles constantes définies pour l'environnement shell : STDIN, STDOUT, STDERR. Tous sont des gestionnaires de fichiers pour le périphérique shell correspondant. Par exemple, STDIN est un gestionnaire de fichier pour fopen('php://stdin', 'r'). Vous pouvez donc lire une ligne de STDIN comme ceci : $strLine = trim(fgets(STDIN));. Le STDIN est déjà défini pour vous en utilisant le PHP CLI.
  • Le PHP CLI ne change pas le répertoire courant en répertoire du script en cours d'exécution. Le répertoire courant du script est le répertoire dans lequel vous exécutez la commande PHP CLI.
  • Il y a un certain nombre d'options UTILES disponibles pour le CLI de PHP. Ce qui vous permet d'obtenir des informations précieuses sur votre configuration php, votre script php ou de l'exécuter dans différents modes.
  • Dans PHP 5, il y a eu quelques changements dans les noms de fichiers CLI et CGI. Dans PHP 5, la version CGI a été renommée en php-cgi.exe (anciennement php.exe) et la version CLI est maintenant située dans le répertoire principal (anciennement cli/php.exe).
  • Un nouveau mode a également été introduit dans PHP 5 : php-win.exe. C'est équivalent à la version CLI, sauf que dans php-win rien n'est imprimé, et ne fournit donc pas de console (aucune "boîte à dos" n'est affichée à l'écran). Ce comportement est similaire à celui de PHP GTK.

Jan Barášek   Více o autorovi

Autor článku pracuje jako seniorní vývojář a software architekt v Praze. Navrhuje a spravuje velké webové aplikace, které znáte a používáte. Od roku 2009 nabral bohaté zkušenosti, které tímto webem předává dál.

Rád vám pomůžu:

Související články

1.
4.
Status:
All systems normal.
2024