PHP では、スクリプトがコマンド ラインから実行されるか HTTP 経由で実行されるかを決定することが出力に不可欠です。フォーマットやその他の目的。 SERVER['argc'] 配列を検査する従来の方法は、HTTP 実行中にも値が設定される可能性があるため、あらゆる場合に信頼できるわけではありません。
この問題に対する正規の解決策は、php_sapi_name() 関数を使用することです。 。この関数は、Web サーバーと PHP 間のインターフェイスの種類を返します。戻り値が「cli」の場合、スクリプトはコマンドラインから実行されていますが、その他の値は HTTP 実行を示します。
if (php_sapi_name() == "cli") { // In cli-mode } else { // Not in cli-mode }
PHP ドキュメントに記載されているように、php_sapi_name() はさまざまな値を返すことができます。値はサーバー インターフェイスに応じて異なります。一般的な値には、「apache」、「cgi-fcgi」、「nsapi」、「litespeed」などがあります。
PHP バージョン 4.2.0 以降では、同じ値を持つ事前定義定数 PHP_SAPI もあります。 php_sapi_name() として。この定数は関数の代わりに使用できます。
以上がPHP スクリプトがコマンドラインまたは HTTP モードで実行されているかどうかを確実に判断するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。