我正在设置一个页面,该页面将根据所选主题拉动推文-目前已被硬编码,并且似乎工作正常。问题是,在处理JSON数据(现已转换为数组)的那一刻,我正在努力将数组中的“ media_url”键定位为检索图像所需的键。
重写我的代码或重新格式化它的简短方式,我已经尝试了多种方法来使帖子的media_url键无效。在其他答案中,我看到人们通过将数据用作对象而成功,但是我不确定该如何去做。
我已经按照https://iag.me/socialmedia/build-your-first-twitter-app-using-php-in-8-easy-steps/上的教程进行了深入了解-我会注意到人们已经问过要检索此页面上的图像,但很遗憾没有得到答复。
require_once('TwitterAPIExchange.php');
/** Set access tokens here - see: https://dev.twitter.com/apps/ **/
$settings = array(
'oauth_access_token' => "xxx",
'oauth_access_token_secret' => "xxx",
'consumer_key' => "xxx",
'consumer_secret' => "xxx"
);
$url = "https://api.twitter.com/1.1/search/tweets.json";
$getfield = '?q=%23life&count=20&tweet_mode=extended&include_entities=true';
$requestMethod = 'GET';
$twitter = new TwitterAPIExchange($settings);
$string = json_decode($twitter->setGetfield($getfield)
->buildOauth($url, $requestMethod)
->performRequest(),$assoc = TRUE);
if(array_key_exists("errors", $string)) {echo "<h3>Sorry, there was a problem.</h3><p>Twitter returned the following error message:</p><p><em>".$string[errors][0]["message"]."</em></p>";exit();}
foreach($string as $items)
{
if (is_array($items)){
foreach($items as $item)
{
if ($item['user'] != null) {
echo $item['user']['name'] . " " . "|" . " " . "@" . $item['user']['screen_name']."<br />";
echo $item['full_text'] . "<br />";
echo $item['created_at']."<br />";
echo $item['entities']>['media'][0]['media_url'] . "<br />";
echo '<hr>';
var_dump($item);
}
else {
return;
}
}
}
}
?>
我在尝试重新设置行echo $item['entities']>['media'][0]['media_url'] . "<br />";
时遇到了许多错误,并且已经达到了伸手可及的程度。希望我不必将其重新格式化为一个对象,但看起来好像可以。
根据@MagnusEriksson的评论,我的问题是由我使用的语法不正确引起的。
[$item['entities']['media'][0]['media_url']
使我可以定位所要寻找的索引,现在可以显示鸣叫了:)谢谢马格努斯!