php_sapi_name

関数の概要

php_sapi_name() 関数は、現在実行中のPHPのSAPI(Server API)名を取得するための関数です。SAPIはPHPが動作している環境やインターフェイスの種類を示し、例えばWebサーバ上のモジュールとして動いているのか、コマンドラインから実行されているのかを識別できます。

パラメータの説明

  • php_sapi_name() はパラメータを取らないシンプルな関数です。

戻り値

関数は文字列を返します。これは現在のSAPI名を示し、例えば「apache2handler」、「cli」、「cgi-fcgi」などの値が返されます。返される文字列は環境によって異なります。

使用例

基本的な使い方

<?php
echo php_sapi_name();
?>

このコードは現在のSAPI名をそのまま出力します。例えばコマンドラインから実行すると「cli」が表示されます。

条件分岐で使う例:CLIかどうか判定する

<?php
if (php_sapi_name() === 'cli') {
    echo "コマンドラインから実行されています。";
} else {
    echo "Webサーバ上で実行されています。";
}
?>

この例では、スクリプトがコマンドラインから実行されているかどうかを判断して、メッセージを切り替えています。

複数のSAPIに応じてレスポンスを変更する

<?php
switch (php_sapi_name()) {
    case 'cli':
        echo "CLI環境用の処理を実行";
        break;
    case 'apache2handler':
        echo "Apacheモジュールとして実行中";
        break;
    case 'cgi-fcgi':
        echo "CGI/FastCGIとして実行中";
        break;
    default:
        echo "その他のSAPI: " . php_sapi_name();
}
?>

このサンプルは環境ごとに異なる処理やメッセージを出したい場合に役立ちます。

関連する関数

  • php_uname() – OS情報を取得する
  • phpversion() – PHPのバージョンを取得
  • php_ini_loaded_file() – 読み込まれているphp.iniファイルを確認
  • getenv() – 環境変数を取得

まとめ

php_sapi_name() はPHPがどの環境(SAPI)上で動作しているかを知るための便利な関数です。これにより、CLI用の処理とWebサーバ用の処理を分けたり、環境に応じた適切な対応を行えます。パラメータはなく、返り値の文字列で環境を判定するだけなので、初心者でも簡単に使いこなせる関数です。