PHP スクリプトがコマンドラインまたは HTTP モードで実行されているかどうかを確実に判断するにはどうすればよいですか?

Susan Sarandon
リリース: 2024-11-19 20:00:04
オリジナル
813 人が閲覧しました

How to Reliably Determine if a PHP Script Is Running in Command-Line or HTTP Mode?

PHP でのコマンド ライン実行と HTTP 実行の決定

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート