Maison >développement back-end >tutoriel php >Comment déterminer si un script PHP s'exécute sur la ligne de commande ou via HTTP ?

Comment déterminer si un script PHP s'exécute sur la ligne de commande ou via HTTP ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-15 18:33:03897parcourir

How to Determine if a PHP Script is Running on the Command Line or via HTTP?

Détermination du mode d'exécution du script en PHP

Déterminer si un script PHP est exécuté via la ligne de commande ou HTTP est crucial à diverses fins, comme le formatage de sortie. Historiquement, la vérification de la variable SERVER['argc'] était considérée comme l'approche canonique. Cependant, cette méthode s'avère peu fiable lors de l'utilisation de l'API du serveur Apache 2.0 Handler car elle remplit SERVER['argc'] même lors de l'exécution en ligne de commande.

La méthode recommandée et plus robuste consiste à utiliser la fonction php_sapi_name() . Il renvoie une chaîne indiquant le type d'interface entre le serveur web et PHP. Les exemples incluent :

  • "cli" pour l'exécution en ligne de commande
  • "apache2handler" pour l'exécution de l'API du serveur Apache 2.0 Handler

Exemple de code :

if (php_sapi_name() == "cli") {
    // In cli-mode
} else {
    // Not in cli-mode
}

Documentation Notes :

La documentation de la fonction php_sapi_name() fournit des informations supplémentaires :

  • Valeurs de retour possibles : Bien que non exhaustive, la fonction peut renvoyer des valeurs telles que comme "apache", "cgi", "nsapi" et "tux", représentant différents serveurs API.
  • PHP >= 4.2.0 : PHP a introduit une constante prédéfinie, PHP_SAPI, qui a la même valeur que php_sapi_name().

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