如何检查$ data = file_get_contents(" php:// stdin")是否为空?

时间:2014-01-20 07:40:59

标签: php

如何检查

$data = file_get_contents("php://stdin");

是空的,就像一个人应该传递一个参数但是没有。



我有一个文件test_cmd.php

#!/usr/bin/php
<?php

   $data = file_get_contents("php://stdin");
   echo $data;

当我跑步时

$ ls -l | test_cmd.php

我得到了

total 36
drwxrwxr-x  3 username username 4096 Jan 20 11:10 ./
drwxr-xr-x 16 username username 4096 Jan 19 23:49 ../
-rw-rw-r--  1 username username 4299 Jan 19 13:06 index.php
-rwxrwxr-x  1 username username 2619 Jan 20 12:58 test_cmd*
-rw-rw-r--  1 username username 3022 Jan 19 10:18 file1.php
-rw-rw-r--  1 username username 3022 Jan 19 10:18 file2.php

但是当我跑步时:

$ test_cmd.php

控制台等待文本输入,我不想这样做。我想展示Usage帮助。

我该如何纠正?

2 个答案:

答案 0 :(得分:3)

尝试使用posix_isatty

if (posix_isatty(STDIN))
{
    die("Please don't run me interactively!");
}
else
{
    echo file_get_contents('php://stdin');
}

答案 1 :(得分:-1)

试试这个:

if($filecontent = file_get_contents("php://stdin") !== false)
{
   // do stuff here
}