標準入力で何か渡されているかの判定。
真面目にやるとストリームで徐々に渡されたらどうするの、みたいなのも考えないと駄目。
すごい適当にやる場合の話。
<?php
$stdin = fopen('php://stdin', 'r');
stream_set_blocking($stdin, false);
$in = stream_get_contents($stdin);
if ($in) {
// なんか渡されたらしい
echo $in;
// ...
} else {
// なにも渡されなかったらしい
// ...
}
$ echo 123 | php tekito.php
- ノンブロッキングモードにしないと、何も渡ってきてないときに待ちが発生して進まなくなってしまう
-
STDIN
定数はphp -a
など、状況によっては定義されていないので、諦めてfopenで作ったほうがinteropが上がる