Maison >développement back-end >tutoriel php >Comment puis-je déterminer de manière fiable si mon script PHP s'exécute à partir de la ligne de commande ou via HTTP ?

Comment puis-je déterminer de manière fiable si mon script PHP s'exécute à partir de la ligne de commande ou via HTTP ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-16 12:13:03403parcourir

How Can I Reliably Determine if My PHP Script is Running from the Command Line or via HTTP?

Détermination de l'exécution en ligne de commande par rapport à l'exécution HTTP en PHP

Une tâche courante dans le développement de scripts PHP consiste à déterminer le type d'environnement d'exécution, qu'il s'agisse le script s'exécute via la ligne de commande ou via HTTP. Cette connaissance est cruciale pour prendre des décisions de formatage de sortie et personnaliser le comportement en conséquence.

La méthode traditionnelle de vérification de l'existence de SERVER['argc'] n'est pas fiable, car elle peut être renseignée même en utilisant l'outil 'Apache'. API du serveur du gestionnaire 2.0. La manière canonique de résoudre cette requête consiste à utiliser la fonction php_sapi_name().

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

La fonction php_sapi_name() fournit un large éventail de valeurs de retour possibles, notamment aolserver, apache, apache2filter, apache2handler, caudium, cgi, cli et webjames, entre autres. Référez-vous à la documentation PHP pour une liste exhaustive.

De plus, dans PHP >= 4.2.0, une constante prédéfinie PHP_SAPI détient la même valeur que php_sapi_name(). En utilisant cette constante, les développeurs peuvent améliorer la lisibilité et la maintenabilité du code.

En adhérant à cette approche canonique, les développeurs PHP peuvent déterminer de manière fiable l'environnement d'exécution de leurs scripts, permettant un formatage de sortie ciblé et des ajustements de comportement personnalisés.

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