「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > PHP スクリプトがコマンド ラインから実行されているか、HTTP 経由で実行されているかを確実に判断するにはどうすればよいですか?

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

2024 年 12 月 21 日に公開
ブラウズ:450

How Can I Reliably Determine if My PHP Script is Running from the Command Line or via HTTP?

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

PHP スクリプト開発の一般的なタスクは、実行環境のタイプを決定することです。スクリプトはコマンドラインまたは HTTP 経由で実行されます。この知識は、出力の書式設定を決定し、それに応じて動作をカスタマイズするために重要です。

SERVER['argc'] の存在を確認する従来の方法は、「Apache」を使用している場合でも入力される可能性があるため、信頼できません。 2.0 ハンドラーのサーバー API。このクエリを解決する標準的な方法は、php_sapi_name() 関数を利用することです。

if (php_sapi_name() == "cli") {
    // In cli-mode
} else {
    // Not in cli-mode
}

php_sapi_name() 関数は、aolserver、apache、apache2filter、apache2handler、caudium、cgi、cli、webjames などを含む幅広い戻り値を提供します。完全なリストについては、PHP ドキュメントを参照してください。

さらに、PHP 4.2.0 以上では、事前定義定数 PHP_SAPI は php_sapi_name() と同じ値を保持します。この定数を利用することで、開発者はコードの可読性と保守性を向上させることができます。

この標準的なアプローチに従うことで、PHP 開発者はスクリプトの実行環境を確実に判断でき、ターゲットを絞った出力フォーマットやカスタマイズされた動作調整が可能になります。

最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3