3

我对 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;
}

最重要的是这是一个开关功能,应该处理你的输入,但是网页上没有地方放输入?

我还尝试将其复制并粘贴到我收到一系列不同错误的终端中。我在这里完全错过了船吗?

4

1 回答 1

2

我找到了这个:

$stdin = fopen('php://stdin', 'r');
$response = fgetc($stdin);

fopen() 以只读 ('r') 的形式打开一个标准输入流,并且 fgetc() 等待输入(只有一个字符,您必须按 Enter 键)。使用 fgets() 您可以读取整行(行尾是 EOL(\n、\r 左右))(仅用于命令行使用,否则将不起作用)

于 2016-08-12T07:20:03.327 回答