14
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

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

Posted at

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

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

14
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?