php - 警告 : fgets() expects parameter 1 to be resource, 中给出的字符串

标签 php api terminal stdin etrade-api

我对 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/

相关文章:

php - 在php中编写sql查询

php - 在 MySql 中存储日期和时间

ubuntu - 如何在 Atom 中打开终端?

java - 如何直接从终端运行java

java - (Java) 正确使用命令行执行

php - 按数组值链接的动态类方法调用

php - PDO::query() 运行到 "Cannot execute queries while other unbuffered queries are active."

c# - 如何使用位置用户名或 ID 获取在特定位置的 Instagram 中上传照片的所有用户?

api - 使用 Azure 数据工厂从 REST API 获取数据

c# - 我应该如何验证 DTO?