入出力ストリーム (コマンドラインの使用法) - PHPプロ!マニュアル

PHPマニュアル

入出力ストリーム

入出力ストリーム

CLI SAPI には入出力ストリーム用の定数がいくつか定義されており、 これらを使うとコマンドライン用のプログラミングが多少簡単になります。

CLI 固有の定数
定数 説明
STDIN

stdin へのオープン済みのストリーム。 これにより、以下のようにオープンする必要がなくなります。

<?php
$stdin 
fopen('php://stdin''r');
?>
stdin から1行読み込みたい場合、以下のようにします。
<?php
$line 
trim(fgets(STDIN)); // STDIN から 1 行読み込む
fscanf(STDIN"%d\n"$number); // STDIN から数値を読み込む
?>
STDOUT

stdout へのオープン済みのストリーム。 これにより、以下のようにオープンする必要がなくなります。

<?php
$stdout 
fopen('php://stdout''w');
?>
STDERR

stderr へのオープン済みのストリーム。 これにより、以下のようにオープンする必要がなくなります。

<?php
$stderr 
fopen('php://stderr''w');
?>

上記のように、stderr のようなストリームを自分で オープンする必要はなく、以下のようにストリームリソースの代わりに 定数を使用するだけでかまいません。

php -r 'fwrite(STDERR, "stderr\n");'
これらのストリームを明示的に閉じる必要はありません。これは、 PHP により自動的に行われます。

注意:

これらの定数は、PHP スクリプトを stdin から読み込んだ場合は使用できません。


PHPマニュアル



Pick Up Q&A

Q
セッションがいいのか、それともデータベースがいいのか教えて下さい。
 このエントリーをはてなブックマークに追加 
A
>ボタンをクリックしたら選んだ商品情報を持っておきたいと思っています。 そのくらいのことならセッションもしくはCookie(期限短め:場合によってはブラウザ閉じるまで)でいいんじゃないですかね。 #わ...

>>続きを読む

一つの目安として、ECサイトの購入情報など絶対に消えてはいけないものはDBに、カートなどの一時的に使用する情報や、ユーザに任意のタイミングで消去されても構わないものはセッションにと使い分けるといいでしょう。

▲解説者:岡本(アシアル株式会社 教育コーディネーター兼 システムエンジニア)