Php 你能做一个$json=file\u get\u contents($url)吗;在已经使用$json=file_get_contents($url)的foreach语句中;?

Php 你能做一个$json=file\u get\u contents($url)吗;在已经使用$json=file_get_contents($url)的foreach语句中;?,php,foreach,file-get-contents,Php,Foreach,File Get Contents,我得到的错误是警告:为foreach提供的参数无效,这是因为data2不是数组 我猜我不能像我一样把文件内容叠起来。有办法解决这个问题吗?首先检查一下,您的url是否返回JSON?如果是,则可以使用以下选项 $url = "www.test.com" $json = file_get_contents($url); $data = json_decode($json); foreach($data as $mydata) { $id = $mydata->id;

我得到的错误是警告:为foreach提供的参数无效,这是因为data2不是数组


我猜我不能像我一样把文件内容叠起来。有办法解决这个问题吗?

首先检查一下,您的url是否返回JSON?如果是,则可以使用以下选项

$url = "www.test.com"
$json = file_get_contents($url);
$data = json_decode($json);

foreach($data as $mydata) {

    $id = $mydata->id;

        $url2 = "www.test.com/$id";
        $json2 = file_get_contents($url2);
        $data2 = json_decode($json2);
        var_dump($data2); // seems to always be null?? :(

            foreach($data2 as $mydata2) {

                   .............
                }
}

TRUE返回一个数组而不是一个对象。

URL没有返回有效的JSON。

您可以使用它,问题是,从第二个URL返回什么。它有效吗?我问得太快了。我发现了我的错误。我去错网址了。它返回的是XML而不是JSON。您错过了URL开头的http://protocol
$data = json_decode($json, TRUE);