49

私は $_ENV['CLIENTNAME'] == 'Console' のようなことを試しましたが、それは特定の OS でのみ動作するようです (Linux ではなく Windows で動作します)。

!empty($_ENV['SHELL']) を試しましたが、それも常に機能するとは限りません...

すべての OS/環境で動作することを確認する方法はありますか?

4

6 に答える 6

87

使用するphp_sapi_name()

PHP が使用しているインターフェイス (サーバー API、SAPI) のタイプを表す小文字の文字列を返します。たとえば、CLI PHP では、この文字列は「cli」になりますが、Apache では、使用される正確な SAPI に応じて、いくつかの異なる値を持つ場合があります。

例えば:

$isCLI = (php_sapi_name() == 'cli');

定数を使用することもできますPHP_SAPI

于 2009-06-25T07:09:36.107 に答える
15

http://php.net/manual/en/features.commandline.php#105568 "PHP_SAPI" 定数を確認してください

<?php
if (PHP_SAPI === 'cli')
{
   // ...
}
?> 
于 2016-09-01T07:41:35.080 に答える
3

これは古い質問であることは承知していますが、記録として、User-Agent ヘッダーなしで HTTP リクエストが着信し、この場合、PHP は HTTP_USER_AGENT を自動的に定義しません。

于 2011-07-07T19:20:02.770 に答える
-2

HTTP_USER_AGENT を確認してください。http リクエストに存在する必要があります。

于 2009-06-25T07:01:43.173 に答える