Je dois déterminer si le fichier PHP est chargé via cron ou ligne de commande dans le code. Comment puis-je faire ceci?Comment déterminer si un fichier PHP est chargé via cron/ligne de commande
Répondre
Si vous avez le contrôle sur la commande cron ou, avez-vous envisagé de passer un argument de ligne de commande et de le lire avec $_SERVER['argv'][0]
?
* * * * * /usr/bin/php /path/to/script --cron
Dans le script:
<?php
if(isset($_SERVER['argv'][0]) and $_SERVER['argv'][0] == '--cron')
$I_AM_CRON = true;
else
$I_AM_CRON = false;
La façon la plus fiable et exhaustive pour vérifier où est exécuté votre script me connu est
Ni ceci ni aucun des D'autres méthodes listées ici, cependant, vous donneront une distinction entre le mode CLI "normal" et un appel cron. L'argument de la ligne de commande de gahooa est probablement la solution la meilleure et la plus fiable.
Je ne sais pas si quelque chose a changé au cours des dernières années, mais sur mon système (CentOS 6.6 , PHP 5.4.38, exécutant Litespeed), il y a une distinction. 'php_sapi_name()' retourne 'cli' lorsqu'il est exécuté à partir de la ligne de commande. Il renvoie 'cgi-fcgi' lorsqu'il est exécuté via cron. – rinogo
Vous pouvez vérifier la constante PHP_SAPI
pour vérifier si l'interpréteur CLI est utilisé:
$is_cli= PHP_SAPI == 'cli';
Bien que non pertinent ici, il y a très peu de raison d'utiliser l'opérateur '=='. – Nathaniel
C'est une façon simple. Certains éléments du tableau $_SERVER
ne sont définis que s'ils sont appelés à partir de HTTP. Ainsi, vous pouvez:
if(!isset($_SERVER['REQUEST_METHOD'])){
// from cron or command line
}else{
// from HTTP
}
D'autres comprennent: $_SERVER['HTTP_HOST']
- 1. Comment déterminer si un ResourceDictionary est chargé correctement
- 2. Comment déterminer si un fichier est en cours d'utilisation?
- 3. Regex pour déterminer si un fichier est un fichier rar
- 4. Est-il possible de déterminer si l'assembly a été chargé dans un service Web?
- 5. Comment déterminer si un fichier est chiffré avec EFS?
- 6. Déterminer si un pathspec est un répertoire ou un fichier (ou quelque chose d'autre) via WMI?
- 7. Comment détecter au sélénium si le chargement d'un fichier javascript est chargé via ajax?
- 8. Comment déterminer si une police TrueType est en italique?
- 9. Comment déterminer si un gif est animé?
- 10. Comment déterminer si objet est un NSNumber
- 11. Comment déterminer si un pthread est actif?
- 12. PHP - Comment déterminer si la demande provient d'un fichier spécifique
- 13. Détection si un HttpModule est chargé
- 14. Comment déterminer si java est installé sur un système via python?
- 15. comment vérifier si le fichier est php?
- 16. Comment déterminer si un groupe est un groupe de sécurité?
- 17. Comment puis-je déterminer si un fichier est un fichier PDF?
- 18. Déterminer si le module Magento est activé
- 19. Comment vérifier si un fichier swf est correctement chargé depuis que put_Movie retourne toujours S_OK?
- 20. Déterminer si un fichier XDocument existe
- 21. Comment déterminer si un fichier existe dans un SPFolder SharePoint
- 22. Comment puis-je détecter si un contrôle ActiveX est chargé?
- 23. Comment déterminer le type d'usercontrol chargé dynamiquement?
- 24. Commande dd - Comment déterminer cbs
- 25. Comment déterminer si une requête SQL est un SELECT?
- 26. Déterminer si un type est statique
- 27. Déterminer si l'erreur $ .ajax est un délai
- 28. Comment déterminer si un NSString est normalisé dans NFD?
- 29. .NET: Comment déterminer si un objet est un objet COM?
- 30. C# - comment déterminer si un Type est un nombre
chargé dans quoi? Dans quel environnement? – wallyk
Dupliquer: http://stackoverflow.com/questions/1848803/execute-php-via-cron-no-input-file-specified –