私は $_ENV['CLIENTNAME'] == 'Console' のようなことを試しましたが、それは特定の OS でのみ動作するようです (Linux ではなく Windows で動作します)。
!empty($_ENV['SHELL']) を試しましたが、それも常に機能するとは限りません...
すべての OS/環境で動作することを確認する方法はありますか?
私は $_ENV['CLIENTNAME'] == 'Console' のようなことを試しましたが、それは特定の OS でのみ動作するようです (Linux ではなく Windows で動作します)。
!empty($_ENV['SHELL']) を試しましたが、それも常に機能するとは限りません...
すべての OS/環境で動作することを確認する方法はありますか?
使用するphp_sapi_name()
PHP が使用しているインターフェイス (サーバー API、SAPI) のタイプを表す小文字の文字列を返します。たとえば、CLI PHP では、この文字列は「cli」になりますが、Apache では、使用される正確な SAPI に応じて、いくつかの異なる値を持つ場合があります。
例えば:
$isCLI = (php_sapi_name() == 'cli');
定数を使用することもできますPHP_SAPI
http://php.net/manual/en/features.commandline.php#105568 "PHP_SAPI" 定数を確認してください
<?php
if (PHP_SAPI === 'cli')
{
// ...
}
?>
これは古い質問であることは承知していますが、記録として、User-Agent ヘッダーなしで HTTP リクエストが着信し、この場合、PHP は HTTP_USER_AGENT を自動的に定義しません。
HTTP_USER_AGENT を確認してください。http リクエストに存在する必要があります。