По определению UUID является 32 шестнадцатеричными цифрами, разделенными в 5 группах дефисами, как Вы описали. Вы не должны скучать ни по кому со своим регулярным выражением.
Если у вас есть контроль над cron или командой, используйте вы рассматривали возможность передачи аргумента командной строки и его чтения с помощью $ _ SERVER ['argv'] [0]
?
* * * * * /usr/bin/php /path/to/script --cron
В сценарии:
<?php
if(isset($_SERVER['argv'][0]) and $_SERVER['argv'][0] == '--cron')
$I_AM_CRON = true;
else
$I_AM_CRON = false;
Вы можете проверить константу PHP_SAPI
, чтобы проверить, используется ли интерпретатор CLI:
$ is_cli = PHP_SAPI == 'cli';
Самый надежный и исчерпывающий способ проверить, где запускается ваш скрипт, известный мне, - это
Однако ни этот, ни какой-либо из других перечисленных здесь методов, даст вам различие между "нормальным" режимом CLI и вызовом cron. Идея аргумента командной строки gahooa, вероятно, является лучшим и наиболее надежным решением.
Это один простой способ. Некоторые элементы массива $ _ SERVER
устанавливаются только при вызове из HTTP. Таким образом, вы можете:
if(!isset($_SERVER['REQUEST_METHOD'])){
// from cron or command line
}else{
// from HTTP
}
Другие включают: $ _ SERVER ['HTTP_HOST']