Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/237.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 读取提供json数据的api时出现问题_Php_Html_Json_Api - Fatal编程技术网

Php 读取提供json数据的api时出现问题

Php 读取提供json数据的api时出现问题,php,html,json,api,Php,Html,Json,Api,我想给自己编一个网页,显示一些公司的数据。 我已经找到了一个API,它可以显示不同的值,有人可以选择 所以我开始整理我的网页并添加一个输入。这样,用户就可以选择要搜索的公司 <input type="text" name="Ticker" placeholder="Ticker Symbol"> 然后在文件末尾,我添加了一个php部分,从URL中提取数据(JSON): <?php if(isset($_GET['Ticker']))

我想给自己编一个网页,显示一些公司的数据。 我已经找到了一个API,它可以显示不同的值,有人可以选择

所以我开始整理我的网页并添加一个输入。这样,用户就可以选择要搜索的公司

<input type="text" name="Ticker" placeholder="Ticker Symbol">

然后在文件末尾,我添加了一个php部分,从URL中提取数据(JSON):

<?php
            if(isset($_GET['Ticker']))
            {
                $Ticker_Name = $_GET['Ticker'];
                echo '<p>Your choosen company is '. $Ticker_Name . '</p>';
                $ch = curl_init();
                curl_setopt($ch, CURLOPT_URL, 'https://financialmodelingprep.com   /api/financials/income-statement/' . $Ticker_Name);
                curl_setopt($ch, CURLOPT_HEADER, 0);
                curl_exec($ch);
                curl_close($ch);
            }           
        ?>

这将显示api提供的原始信息。 但我遇到的问题是格式化/访问API提供的json数据

我最后尝试的是:

<?php
            if(isset($_GET['Ticker']))
            {
                $Ticker_Name = $_GET['Ticker'];
                echo '<p>Your choosen company is '. $Ticker_Name . '</p>';
                $url = file_get_contents('https://financialmodelingprep.com/api/financials/income-statement/' . $Ticker_Name);
                //$daten = file_get_contents($url);
                $json = json_decode($url, true);

                echo $json->Revenue;
            }   
?>  

获取此消息:

注意:尝试获取非对象的财产“收入”

没有在数据上显示任何内容


如果有人能帮助我,我将不胜感激,提前谢谢。

这是因为您在json\u decode中传递了true,这意味着它返回的是关联数组而不是对象,您可以像echo$json[$Ticker\u Name]['Revenue']['2013-09']print\r($json>一样访问它[$Ticker\u Name]['Revenue']像这样

试试这个代码

片段


发生这种情况是因为您在json\u decode中传递了true,这意味着它返回的是关联数组而不是对象,您可以像echo$json[$Ticker\u Name]['Revenue']['2013-09']print\r($json[$Ticker\u Name]['Revenue'])这样访问它

试试这个代码

片段


谢谢您的回答,它正在工作

但是如果我试着在这个输入框附近放置另一个输入框,让用户搜索网页的值可能不再更新choosen输入。 它不再更新

输入股票代码
输入您的值

非常感谢。

谢谢你的回答,它正在工作

但是如果我试着在这个输入框附近放置另一个输入框,让用户搜索网页的值可能不再更新choosen输入。 它不再更新

输入股票代码
输入您的值

非常感谢。

file\u get\u内容是否从URL返回任何数据?您是否将
allow\u URL\u fopen
设置为true?是否
$Ticker\u Name
是实际的股票代码?去掉
true
参数以
json\u decode
。该参数使其返回关联数组,而不是对象。或者使用
$json['Revenue']
.file\u get\u contents是否从URL返回任何数据?是否将
allow\u URL\u fopen
设置为true?是否
$Ticker\u Name
是一个实际的股票行情器?请去掉
true
参数以
json\u decode
。该参数使其返回一个关联数组,而不是一个对象。或者使用
$json['Revenue']
<?php
            if(isset($_GET['Ticker']))
            {
                $Ticker_Name = $_GET['Ticker'];
                echo '<p>Your choosen company is '. $Ticker_Name . '</p>';
                $url = file_get_contents('https://financialmodelingprep.com/api/financials/income-statement/' . $Ticker_Name);
                $url = str_replace('<pre>','',$url); //Removing <pre> html tag
                $json = json_decode($url, true);
                print_r($json[$Ticker_Name]['Revenue'];
            }   
?>  
        <label>Enter Ticker Symbol</label>
        <input type="text" name="Ticker" placeholder="Ticker Symbol">
        <label>Enter your Value</label>
        <input type="text" name="Value" placeholder="Value">

<?php
        if(isset($_GET['Ticker']))
        {
                $Ticker_Name = $_GET['Ticker'];
                $Value = $_GET['Value'];
                echo '<p>Your choosen company is '. $Ticker_Name . '</p>';
                echo '<p>Your choosen value is '. $Value . '</p>';
                $url = file_get_contents('https://financialmodelingprep.com/api/financials/income-statement/' . $Ticker_Name);
                $url = str_replace('<pre>','',$url); //Removing <pre> html tag
                $json = json_decode($url, true);
                print_r($json[$Ticker_Name][$Value]);
        }   
?>