CLI版PHPでの引数の取り扱い

2008/05/20 | CLI

PHPはその用途によって大きく3つに分類される。それらはDSO版(モジュール版)、CGI版、CLI版だ。

DSO版はおそらくPHPで一番一般的な使い方で、PHPプログラムがapacheのモジュールとして組み込まれたPHPエンジンで解釈され実行される。一般的なレンタルサーバはたいていコレだ。

CGI版はPHPをCGIとして動作させるタイプだ。たいていはプログラムの一行目にCGI版PHPプログラム本体のパスを指定して実行させる。

CLI版PHPはコンソールにログインして実行するプログラムで使用されるものだ。CGI版とCLI版は基本的に似たようなものだが、CGI版はHTTPヘッダを出力するが、CLI版は出力しない点が異なる。以前はCGI版とCLI版の区別があいまいだった感があるが(厳密に区別はされていたのだろうが、使用者側での区別があいまいだったと思う)、現在は情報も多くなってきている。

さてCLI版PHPはコマンドラインからPHPプログラムを実行するわけだから、ウェブで(DSO版で)引数指定をする際の?hoge=fugaみたいな方法は使わない。当然コマンドラインから実行するわけだから、以下のような記述になる。

/usr/local/bin/php-cli ./hoge.php fuga piyo

上記はhoge.phpに引数fuga、piyoを与えて実行させている。これらの引数をPHPプログラム内で取り扱うためには以下のように指定する。

$_SERVER[‘argv’]

戻り値は配列となり、最初の値はプログラム本体(hoge.php)、2番目以降は引数として与えられた値、となる。具体的には上記の戻り値は以下のようになる。

array(0=>’hoge.php’,1=>’fuga’,2=>’piyo’)

よく似た環境変数で$_SERVER[‘argc’]というのがある。こちらは引数の個数を返すので、上記の場合の戻り値は「3」となる。

PHPでバックグラウンド処理を実施する場合は、上記のような知識が必要になる。

コメントを残す


守谷市(まちの情報ポータル) 無料アンケートレンタルjpForm.net