Php 试图获得财产';用户';非对象
我有两个错误: 注意:试图在第5行的/Applications/MAMP/htdocs/ig_stats/jsontest.php中获取非对象的属性“users” 警告:第5行的/Applications/MAMP/htdocs/ig_stats/jsontest.php中为foreach()提供的参数无效 我在努力:Php 试图获得财产';用户';非对象,php,json,Php,Json,我有两个错误: 注意:试图在第5行的/Applications/MAMP/htdocs/ig_stats/jsontest.php中获取非对象的属性“users” 警告:第5行的/Applications/MAMP/htdocs/ig_stats/jsontest.php中为foreach()提供的参数无效 我在努力: $json = json_decode(file_get_contents('https://www.instagram.com/web/search/topsearch/?qu
$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;
}
}
我只想从“用户”lol获取“全名”数据。
但我不知道如何才能找到它:/
有人能给我一个提示或解决方案吗?我不确定是否有一个不能迭代对象的版本,但如果是这样,您可以通过将
TRUE
传递到json\u 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
@Jeff这是一个对象,他没有将TRUE
传递给json\u decode()
的第二个参数。是的,我瞎拍的太快了……我的错你的PHP版本是什么?你的代码对我来说很好(PHP7),我不能重现那个错误!但是$item->full\u name
应该是$item->user->full\u name
。(也适用于旧版本)@Mehdi我知道。但是由于显示的代码没有产生显示的错误,因此有可能隐藏了一些相关的代码。谢谢!这两种方法对我都很管用。我已经在去第二个的路上了,但没有正确地完成:)