LoginSignup
0

More than 5 years have passed since last update.

PHPで適当なパイプ検知

Posted at

標準入力で何か渡されているかの判定。

真面目にやるとストリームで徐々に渡されたらどうするの、みたいなのも考えないと駄目。
すごい適当にやる場合の話。

<?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が上がる

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
0