J'ai un script commun qui inclut dans mes fichiers PHPcron et les fichiers qui accèdent via le navigateur. Une partie du code, je n’ai besoin que pour les fichiers non cron. Comment puis-je détecter si l'exécution se fait depuis la CLI ou via un navigateur (je sais que cela peut être fait en passant des arguments avec les fichiers cron mais je n'ai pas accès à crontab). Y-a t'il une autre possibilité ?
Réponses
Trop de publicités?Utiliser l' php_sapi_name()
fonction.
if (php_sapi_name() == "cli") {
// In cli-mode
} else {
// Not in cli-mode
}
Voici quelques notes pertinentes de la documentation:
php_sapi_name - Retourne le type de l'interface entre le serveur web et PHP
Bien que non exhaustive, les valeurs de retour possibles incluent aolserver, apache, apache2filter, apache2handler, caudium, cgi (jusqu'à la version PHP 5.3), cgi-fcgi, cli cli-serveur, de continuité, d'intégrer, isapi, litespeed, milter, nsapi, phttpd, pi3web, roxen, thttpd, tux, et webjames.
Peut-être devriez-vous parcourir la fonctionnalité de recherche la prochaine fois avant de vous demander: Comment déterminer si un fichier PHP est chargé via cron / ligne de commande