PHPをコマンドラインで起動

  • 14
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

PHPを、バッチやcronを使ってコマンドラインから起動する場合、こんなコードを最初に書くと良さげです。

if (PHP_SAPI != 'cli') exit();

何をしているかというと、コマンドライン以外から起動された場合、処理を中断しています。
ちょっと安心しますね。

で、PHP_SAPIって何?と思ったので、ちょっと調べたところ、PHP が使用しているインターフェイス (サーバー API、SAPI) の型、らしいです。
php_sapi_name

これが'cli'であれば、コマンドラインから起動しているということだとか。
じゃー、他に何があるのかというと、ここにヒントが。

PHP SAPIにはどんなのがあるか

  • PHP_SAPIやphp_sapi_name()で取得できるSAPI名は、[sapi/]にある各インターフェイスのソースにて定義されています。

とのこと。
記事自体が古いので、実際に調べてみました。

さあPHPという言語処理系のソースコードを読んでみよう

上記に沿ってソースをダウンロードしてみたところ、今のPHPは、こんなディレクトリになってました。

aolserver.png

中身は・・・とりあえず置いておいて、今はこれだけ種類があるようです。