Заголовок тих простой. Я должен знать на стороне сервера если сценарий, названный через Запрос HTTP или командной строкой. Я мог исследовать $_SERVER['argv']
или $_SERVER['argc']
.
Что прагматический путь состоит в том, чтобы сделать это?
http://us3.php.net/manual/en/function.php-sapi-name.php
<?php
echo PHP_SAPI;
echo php_sapi_name();
?>
Возможно, проверяется, не установлен ли $ _ SERVER ['HTTP_HOST']
? Потому что я считаю, что эта переменная заполняется через заголовки запроса, отправляемые в файл при выполнении, и командная строка, вероятно, не отправляет заголовки.
, но вы должны отправить данные через http (tcp) в любом случае Если скрипт вызывается из CLI или из браузера
Я предлагаю проверять , если (Isset ($ _ Server ['server_name']))
Посмотрите на ключи в $ _ Server . Если это запрос CLI, вы не должны видеть, что начнутся с «http».
Вот несколько простых тестовых кодов:
<?php
foreach( $_SERVER as $k=>$v ){
echo "$k: $v\n";
}
?>
и вот вывод:
aj@mmdev0:~/so$ php cli.php |grep HTTP
aj@mmdev0:~/so$
Вы можете проверить, устанавливается ли глобальная переменная $ ARGC
.