试图获得财产'用户'非对象

时间:2018-04-27 20:28:00

标签: php json

我得到了这两个错误: 注意:尝试获取用户'用户'第5行/Applications/MAMP/htdocs/ig_stats/jsontest.php中的非对象

警告:第5行/Applications/MAMP/htdocs/ig_stats/jsontest.php中为foreach()提供的参数无效

我在尝试:

$json = json_decode(file_get_contents('https://www.instagram.com/web/search/topsearch/?query=lol'));

foreach($json->users as $item)
{
    if($item->user->username == "lol")
    {
        echo $item->full_name;
    }
}

我想要的只是将数据输入' full_name'来自'用户' '洛尔&#39 ;. 但我不知道如何搜索它:/

有人可以给我一个提示或解决方案吗?

1 个答案:

答案 0 :(得分:0)

我不确定是否存在无法迭代对象的版本,但如果是这样,您可以将响应作为数组使用,方法是将TRUE传递给json_decode()

$json = file_get_contents('https://www.instagram.com/web/search/topsearch/?query=lol');
$json = json_decode($json, TRUE);

foreach($json['users'] as $item)
{
    if($item['user']['username'] == "lol")
    {
        echo $item['user']['full_name'];
    }
}

你可能想调试代码,确保$json包含一个对象,因为你的代码对我来说很好,这就是我试过的:

$json = file_get_contents('https://www.instagram.com/web/search/topsearch/?query=lol');
$json = json_decode($json);

foreach($json->users as $item)
{
    if($item->user->username === 'lol'){
        echo $item->user->full_name; // You forgot the user part    
    }
}

两个已打印LOL