我对 php 有点陌生,但我确实了解它的一些关键概念,但对 STDIN、它是什么以及为什么我会收到此错误一无所知。
我正在使用 eTrade API PHP SDK 进行开发,那里的开发社区似乎是一座鬼城,stackoverflow 上绝对没有。
这是我尝试运行的 php 脚本的结果 http://philiparudy.com/etrade/Samples/test_market.php
我想我对这个简单的示例脚本感到困惑,他们为您提供了 php 脚本结尾如下所示的位置:
function get_input($str)
{
echo "\nPlease enter * $str * : ";
return trim(fgets(STDIN));
}
function show_menu()
{
echo "\n\nChoose from following options..\n\n";
echo "1. Get Option Chain\n\n";
echo "2. Product Lookup\n\n";
echo "3. Get Expiry Dates\n";
echo "4. Get Quote\n";
echo "0. Exit\n";
echo "Enter your choice:";
$choice = trim(fgets(STDIN));
return $choice;
}
上面所有这些是一个开关函数,应该可以处理您的输入,但是网页上没有地方可以放置输入?
我还尝试将其复制并粘贴到我收到一系列不同错误的终端中。我在这里完全错过了船吗?
最佳答案
我发现了这个:
$stdin = fopen('php://stdin', 'r');
$response = fgetc($stdin);
fopen() 以只读方式('r')打开标准输入流,fgetc() 等待输入(只有一个字符,您必须按回车键)。使用 fgets() 您可以读取整行(行尾是 EOL(\n、\r 左右)) (这仅供命令行使用,否则它不会工作)
关于php - 警告 : fgets() expects parameter 1 to be resource, 中给出的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26148683/