Как определить, загружается ли файл PHP через крон/командную строку

По определению UUID является 32 шестнадцатеричными цифрами, разделенными в 5 группах дефисами, как Вы описали. Вы не должны скучать ни по кому со своим регулярным выражением.

http://en.wikipedia.org/wiki/Uuid#Definition

9
задан Webnet 6 December 2009 в 04:02
поделиться

4 ответа

Если у вас есть контроль над 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;
16
ответ дан 4 December 2019 в 07:23
поделиться

Вы можете проверить константу PHP_SAPI , чтобы проверить, используется ли интерпретатор CLI:

$ is_cli = PHP_SAPI == 'cli';

2
ответ дан 4 December 2019 в 07:23
поделиться

Самый надежный и исчерпывающий способ проверить, где запускается ваш скрипт, известный мне, - это

php_sapi_name ()

Однако ни этот, ни какой-либо из других перечисленных здесь методов, даст вам различие между "нормальным" режимом CLI и вызовом cron. Идея аргумента командной строки gahooa, вероятно, является лучшим и наиболее надежным решением.

6
ответ дан 4 December 2019 в 07:23
поделиться

Это один простой способ. Некоторые элементы массива $ _ SERVER устанавливаются только при вызове из HTTP. Таким образом, вы можете:

if(!isset($_SERVER['REQUEST_METHOD'])){
 // from cron or command line
}else{
 // from HTTP
}

Другие включают: $ _ SERVER ['HTTP_HOST']

6
ответ дан 4 December 2019 в 07:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: