Json 图像搜索必应API。获取图像的URL
我在我的博客中使用了图像搜索Bing API。我有一个请求,它给了我这个答复:Json 图像搜索必应API。获取图像的URL,json,url,get,request,Json,Url,Get,Request,我在我的博客中使用了图像搜索Bing API。我有一个请求,它给了我这个答复: stdClass Object ( [d] => stdClass Object ( [results] => Array ( [0] => stdClass Object (
stdClass Object
(
[d] => stdClass Object
(
[results] => Array
(
[0] => stdClass Object
(
[__metadata] => stdClass Object
(
[uri] => https://api.datamarket.azure.com/Data.ashx/Bing/Search/Image?Query='Kitchen'&Market='en-us'&$skip=0&$top=1
[type] => ImageResult
)
[ID] => a40b8c85-8a6b-45a8-bce2-c07b16a942e6
[Title] => Our Kitchen Remodel is Complete!!! @ A Well Dressed Home
[MediaUrl] => http://awelldressedhome.com/wp-content/uploads/2010/10/Kitchen-31.jpg
[SourceUrl] => http://awelldressedhome.com/496-our-kitchen-remodel-is-complete/
[DisplayUrl] => awelldressedhome.com/496-our-kitchen-remodel-is-complete
[Width] => 4000
[Height] => 3000
[FileSize] => 5062458
[ContentType] => image/jpeg
[Thumbnail] => stdClass Object
(
[__metadata] => stdClass Object
(
[type] => Bing.Thumbnail
)
[MediaUrl] => http://ts4.mm.bing.net/th?id=OIP.Mf5b92bb26c7b2ed74a31df5d5836cb70H0&pid=15.1
[ContentType] => image/jpg
[Width] => 480
[Height] => 360
[FileSize] => 25427
)
)
当我尝试获取这样的[MediaUrl]时:
$key = "cricket";
$accountKey = 'iXX2NrEp8gfTPvsahjaj2KUAT+E7Quwelff4B6+MDnE';
$ServiceRootURL = 'https://api.datamarket.azure.com/Bing/Search/';
$WebSearchURL = $ServiceRootURL . 'Image?$format=json&Query=';
$request = $WebSearchURL . urlencode( '\'' . $key . '\'');
$process = curl_init($request);
curl_setopt($process, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($process, CURLOPT_USERPWD, $accountKey . ":" . $accountKey);
curl_setopt($process, CURLOPT_TIMEOUT, 30);
curl_setopt($process, CURLOPT_RETURNTRANSFER, TRUE);
$response = curl_exec($process);
$jsonobj = json_decode($response);
echo('<ul ID="resultList">');
foreach($jsonobj->Results as $value)
{
echo('<li class="resultlistitem"><a href="' . $value->MediaURL . '">');
echo('<img src="' . $value->Thumbnail->MediaUrl. '"></li>');
}
echo("</ul>");
$key=“cricket”;
$accountKey='iXX2NrEp8gfTPvsahjaj2KUAT+E7QUWELF4B6+MDnE';
$ServiceRootURL='0https://api.datamarket.azure.com/Bing/Search/';
$WebSearchURL=$ServiceRootURL'图像?$format=json&Query=';
$request=$WebSearchURL。urlencode('\'.$key'\'');
$process=curl\u init($request);
curl_setopt($process,CURLOPT_HTTPAUTH,CURLAUTH_BASIC);
curl_setopt($process,CURLOPT_USERPWD,$accountKey.:“$accountKey);
curl_setopt($process,CURLOPT_TIMEOUT,30);
curl_setopt($process,CURLOPT_RETURNTRANSFER,TRUE);
$response=curl\u exec($process);
$jsonobj=json_decode($response);
echo(“”);
foreach($jsonobj->结果为$value)
{
echo(“- ”);
echo('Thumbnail->MediaUrl'>
');
}
回声(“
”);
我得到一个错误:
正在尝试获取非对象的属性
所以问题是:我做错了什么?我如何从这个回复中获得[MediaUrl]呢?对不起,我的英语很好,谢谢你的回复。请注意,缺少了“d”和区分大小写的问题,所以请替换这个:
$jsonobj->Results
为此:
$jsonobj->d->results