如何检查
$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
帮助。
我该如何纠正?
答案 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
}