Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/74.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中从restAPI返回值,不显示回显值_Php_Html_Json_Api - Fatal编程技术网

在php中从restAPI返回值,不显示回显值

在php中从restAPI返回值,不显示回显值,php,html,json,api,Php,Html,Json,Api,我正在尝试使用PHP从我的API返回一个值,API可以在这里找到: 代码如下: 我没有在我的页面上看到回音,没有看到任何错误,我相信我读的json是正确的。感谢您的帮助 <?php $titleid = 2; $url = "http://kmoffett07.lampt.eeecs.qub.ac.uk/serverSide/buildapi.php?id={$titleid}"; $response =

我正在尝试使用PHP从我的API返回一个值,API可以在这里找到:

代码如下:

我没有在我的页面上看到回音,没有看到任何错误,我相信我读的json是正确的。感谢您的帮助

        <?php

        $titleid = 2;
        $url = "http://kmoffett07.lampt.eeecs.qub.ac.uk/serverSide/buildapi.php?id={$titleid}";
        $response = file_get_contents($url);



        $returnvalue = json_decode($response, true);

        echo $returnvalue["Age"];

        ?>

        

据我所知,json在服务器端无效(由于
{}
部分前面的“connected to db”文本)。如果可能的话,我认为修复服务器端响应json数据是个好主意

现在,有一种方法可以获取您想要检索的值:

<?php
    $titleid = 2;
    $url = "http://kmoffett07.lampt.eeecs.qub.ac.uk/serverSide/buildapi.php?id={$titleid}";
    $response = file_get_contents($url);
    $adjusted_response = str_replace('connected to db', '', $response);
    $returnvalue = json_decode($adjusted_response, true);
    echo $returnvalue['tv_shows']['Age'];
?>
如果服务器端json数据是固定的,我认为您可以将代码缩短为如下内容:

<?php
    $titleid = 2;
    $url = "http://kmoffett07.lampt.eeecs.qub.ac.uk/serverSide/buildapi.php?id={$titleid}";
    $response = file_get_contents($url);
    $returnvalue = json_decode($response, true);
    echo $returnvalue['tv_shows']['Age'];
?>


问题是$response以字符串形式返回,为了解决这个问题,您需要编辑后端并使其在没有“连接到db”的情况下给出响应。

从我所看到的情况来看,服务器端响应似乎不是有效的json。有可能在服务器端解决这个问题吗?你能解释一下你的意思吗?为无知道歉Hi Kyle,没问题解释!我在下面的答案中添加了一些解释,如果有帮助的话!基本上,服务器输出似乎在json数据前面添加了一行文本。如果您知道如何删除服务器
buildapi.php
文件上额外的“connected to db”文本,它应该有助于保持json数据的有效性。您能解释一下服务器端json无效是什么意思吗?为无知道歉!您的方法确实返回了值,调整后的_响应到底在做什么?在您的
buildapi.php
文件的输出中,响应前面有一个文本,显示“connected to db”。如果您有机会更改该
buildapi.php
文件,使额外的“connected to db”文本不会打印到输出中,那么json数据应该是有效的。在我的示例中,
$adjusted_response
正在从响应中删除额外的“connected to db”文本。但这可能不是解决这个问题的理想方法。如果您将服务器文件更改为不包含第一部分的echo或print类型的语句,那么我的答案末尾的示例代码应该可以使用。感谢您的解释,在我用来构建api的文件中,我包含了我为连接数据库而创建的connection.php文件,其中包含了一个echo“connected to db”。刚刚消除了回声,现在它工作得很好。谢谢你的帮助和解释,我还没意识到它正在返回字符串。现在完全理解,而不是我的代码只是工作!感谢您的时间和帮助!嗨,凯勒莫菲特。如果这个或任何答案已经解决了你的问题,请通过点击复选标记来考虑。这向更广泛的社区表明,你已经找到了一个解决方案,并且给了回答者和你自己一些声誉。没有义务这样做。
<?php
    $titleid = 2;
    $url = "http://kmoffett07.lampt.eeecs.qub.ac.uk/serverSide/buildapi.php?id={$titleid}";
    $response = file_get_contents($url);
    $returnvalue = json_decode($response, true);
    echo $returnvalue['tv_shows']['Age'];
?>