Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/264.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 如何从API获取JSON数据_Php_Json_Yahoo - Fatal编程技术网

Php 如何从API获取JSON数据

Php 如何从API获取JSON数据,php,json,yahoo,Php,Json,Yahoo,我使用了雅虎的符号查找 它以JSON格式返回数据。像下面 YAHOO.Finance.SymbolSuggest.ssCallback( { "ResultSet": { "Query": "ya", "Result": [ { "symbol": "YHOO", "name": "Yahoo! Inc.", "exch": "NMS"

我使用了雅虎的符号查找

它以JSON格式返回数据。像下面

YAHOO.Finance.SymbolSuggest.ssCallback(
{
    "ResultSet": {
        "Query": "ya",
        "Result": [
            {
                "symbol": "YHOO",
                "name": "Yahoo! Inc.",
                "exch": "NMS",
                "type": "S",
                "exchDisp": "NASDAQ"
            },
            {
                "symbol": "AUY",
                "name": "Yamana Gold, Inc.",
                "exch": "NYQ",
                "type": "S",
                "exchDisp": "NYSE"
            },
            {
                "symbol": "YZC",
                "name": "Yanzhou Coal Mining Co. Ltd.",
                "exch": "NYQ",
                "type": "S",
                "exchDisp": "NYSE"
            },
            {
                "symbol": "YRI.TO",
                "name": "YAMANA GOLD INC COM NPV",
                "exch": "TOR",
                "type": "S",
                "exchDisp": "Toronto"
            },
            {
                "symbol": "8046.TW",
                "name": "NAN YA PRINTED CIR TWD10",
                "exch": "TAI",
                "type": "S",
                "exchDisp": "Taiwan"
            },
            {
                "symbol": "600319.SS",
                "name": "WEIFANG YAXING CHE 'A'CNY1",
                "exch": "SHH",
                "type": "S",
                "exchDisp": "Shanghai"
            },
            {
                "symbol": "1991.HK",
                "name": "TA YANG GROUP",
                "exch": "HKG",
                "type": "S",
                "exchDisp": "Hong Kong"
            },
            {
                "symbol": "1303.TW",
                "name": "NAN YA PLASTIC TWD10",
                "exch": "TAI",
                "type": "S",
                "exchDisp": "Taiwan"
            },
            {
                "symbol": "0294.HK",
                "name": "YANGTZEKIANG",
                "exch": "HKG",
                "type": "S",
                "exchDisp": "Hong Kong"
            },
            {
                "symbol": "YAVY",
                "name": "Yadkin Valley Financial Corp.",
                "exch": "NMS",
                "type": "S",
                "exchDisp": "NASDAQ"
            }
        ]
    }
}
)
我想得到第一个数组数据的结果

我正在尝试使用下面的,但它不适合我

$file = "http://d.yimg.com/autoc.finance.yahoo.com/autoc?query=yahoo&callback=YAHOO.Finance.SymbolSuggest.ssCallback";
$data = file_get_contents($file);
$result = json_decode($data);
我想得到第一个数组符号的结果

我曾经

$result['YAHOO.Finance.SymbolSuggest.ssCallback']['ResultSet']['result']['symbol']

这对我不起作用,请帮助我,我如何从上面的API中获取符号

谢谢 桑吉布

试试这个

<?php
$file = "http://d.yimg.com/autoc.finance.yahoo.com/autoc?query=yahoo&callback=YAHOO.Finance.SymbolSuggest.ssCallback";
$data = file_get_contents($file);
$data = mb_substr($data, strpos($data, '{'));
$data = mb_substr($data, 0, -1);
$result = json_decode($data, true);
print_r($result['ResultSet']['Result'][0]);

只需从请求url中删除回调参数。 然后将为您提供一个有效的JSON对象。 例如,在您的情况下,它将是:

而不是:

您的Json无效。您是否应该添加一些注释,以便所有人都知道您在做什么以及如何验证Json?代码是不言自明的。默认情况下,数据以Javascript使用的格式返回。我只是切割一些不需要的部分(比如回调函数)。剩下的是JSON。从这里开始,只需将其解码为数组,您就完成了。是的,我理解您的代码,您的想法很棒:)