PHPを、バッチやcronを使ってコマンドラインから起動する場合、こんなコードを最初に書くと良さげです。
if (PHP_SAPI != 'cli') exit();
何をしているかというと、コマンドライン以外から起動された場合、処理を中断しています。
ちょっと安心しますね。
で、PHP_SAPIって何?と思ったので、ちょっと調べたところ、PHP が使用しているインターフェイス (サーバー API、SAPI) の型、らしいです。
php_sapi_name
これが'cli'であれば、コマンドラインから起動しているということだとか。
じゃー、他に何があるのかというと、ここにヒントが。
- PHP_SAPIやphp_sapi_name()で取得できるSAPI名は、[sapi/]にある各インターフェイスのソースにて定義されています。
とのこと。
記事自体が古いので、実際に調べてみました。
上記に沿ってソースをダウンロードしてみたところ、今のPHPは、こんなディレクトリになってました。
中身は・・・とりあえず置いておいて、今はこれだけ種類があるようです。