"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > 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 ?

Publié le 2024-12-21
Parcourir:492

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, que ce soit 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. Reportez-vous à la documentation PHP pour une liste exhaustive.

De plus, dans PHP >= 4.2.0, une constante prédéfinie PHP_SAPI contient 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.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3