No PHP, como posso detectar que o código está sendo executado a partir da linha de comando?

4

Quando executo meu script PHP a partir da linha de comando, recebo os seguintes avisos. Presumo que o motivo é que essas variáveis, como SERVER_NAME, não são aplicáveis ao executar sem um navegador.

No meu código, como posso detectar que é executado a partir da linha de comando e pular essas linhas, então eu não tenho que ver esses avisos?

Eu não quero bloquear esses avisos piping para / dev / null, eu prefiro melhorar o código PHP.

david@ubuntu:/var/www/user$ php cron_email.php
PHP Deprecated:  Comments starting with '#' are deprecated in /etc/php5/cli/conf.d/mcrypt.ini on line 1 in Unknown on line 0
PHP Notice:  Undefined index: SERVER_NAME in /var/www/user/codestart.php on line 14
PHP Notice:  Undefined index: REMOTE_ADDR in /var/www/user/codestart.php on line 97
PHP Notice:  Undefined index: REQUEST_URI in /var/www/user/codestart.php on line 99
PHP Notice:  Undefined index: HTTP_REFERER in /var/www/user/codestart.php on line 100
PHP Notice:  Undefined index: REQUEST_METHOD in /var/www/user/codestart.php on line 101
PHP Notice:  Undefined index: HTTP_USER_AGENT in /var/www/user/codestart.php on line 102
    
por davidjhp 04.03.2011 / 16:51

2 respostas

12

Verifique php_sapi_name() . Se for =='cli' , você está chamando pela linha de comando.

link

    
por 04.03.2011 / 16:57
0

Você pode verificar por $_SERVER["SHELL"] ou $_SERVER["TERM"] . Eles devem existir para o CLI, mas não quando servidos pelo seu servidor.

    
por 04.03.2011 / 16:57