インタラクティブなプログラムを作る
PHPはウェブのためだけの言語ではなくて、コマンドラインからも実行することができるし、Windowsのexeファイルだって作ることができる(納品したことがある)。
PHPでコマンドラインから起動するプログラムを作るのに、インタラクティブに動作するプログラムを作らないといけない案件をもった。インタラクティブなプログラムとは、プログラム中で何らかの入力を促されるような、対話形式のプログラムを指す。そういえば昔N88ベーシックでそういうのがあったなぁ、と懐かしく思い出したけれど、PHPではどうやったらできるんだっけ。でも調べたら、やっぱりできることがわかった(コマンドライン版というくらいなんだから、それくらいできないと・・・)。
ob_end_clean();
echo(‘Input your name: ‘);
$name=fgets(STDIN);
echo(‘Your name is “‘.$name.'”‘);
ミソはSTDIN。通常はfopenする等したリソースをfgets関数の引数として与えるのだが、そこをSTDINと標準入力からの入力待ち状態にしてやるとよい。あと1行目。バッファリングをonにしていると、プログラム終了まで何も出力されない(表示=プログラム終了)ので、順次表示するようにしてやる。
すっきり。