繁体   English   中英

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

[英]How do I check if $data = file_get_contents(“php://stdin”) is empty?

我该如何检查

$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帮助。

我该如何纠正?

尝试使用posix_isatty

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

尝试这个:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM