PHP5和Microsoft Live Search 2.0
我尝试使用Live Search 2.0,但即使是一个简单的示例也似乎不起作用。微软只有1.1的示例代码,他们没有提供该版本的AppID 以下是我正在尝试的:PHP5和Microsoft Live Search 2.0,php,soap,livesearch,Php,Soap,Livesearch,我尝试使用Live Search 2.0,但即使是一个简单的示例也似乎不起作用。微软只有1.1的示例代码,他们没有提供该版本的AppID 以下是我正在尝试的: <?php $server = new SoapClient('http://soap.search.msn.com/webservices.asmx?wsdl'); class Search { public $Request; } class SearchRequest { public $AppID;
<?php
$server = new SoapClient('http://soap.search.msn.com/webservices.asmx?wsdl');
class Search {
public $Request;
}
class SearchRequest {
public $AppID;
public $Query;
public $CultureInfo;
public $SafeSearch;
public $Flags;
public $Location;
public $Requests;
}
class SourceRequest {
public $Source;
public $Offset;
public $Count;
public $FileType;
public $SortBy;
public $ResultFields;
public $SearchTagFilters;
}
$searchRequest = new SourceRequest();
$searchRequest->Source = 'Web';
$searchRequest->Offset = 0;
$searchRequest->Count = 5;
$searchRequest->ResultFields = 'All SearchTagsArray';
$request = new SearchRequest();
$request->AppID = '...';
$request->Query = 'Bill Gates';
$request->CultureInfo = 'en-US';
$request->SafeSearch = 'Off';
$request->Flags = '';
$request->Requests = array($searchRequest);
$search = new Search();
$search->Request = $request;
$server->Search($search);
?>
您可以从为2.0使用正确的soap api url开始。 现在是 “”取自() 您还可以在php中使用新的JSON api
$appid = 'Your app id';
$searchitem = 'PHP Manual';
$request = 'http://api.search.live.net/json.aspx?Appid=' . $appid . '&sources=web&query=' . urlencode( $searchitem);
$response = file_get_contents($request);
$jsonobj = json_decode($response);
foreach($jsonobj->SearchResponse->Web->Results as $value)
{
//$value->Url
//$value->Title
//$value->Description
}
最后还有一个xml api,您可以查看msdn链接,它的获取方式基本上与json相同,您只需对其进行不同的解码。api 2.0的示例代码在msdn上,但我们还没有完整的PHP代码示例。 第一个代码示例(与您已经得到的答案中的示例非常相似)包含在博客文章中 您可能知道,PHP5.2.6中目前存在一些问题,Live Search服务似乎在1.1和2.0中都受到了影响。最简单的解决方法是使用另一个接口(JSON或XML)
$appid = 'Your app id';
$searchitem = 'PHP Manual';
$request = 'http://api.search.live.net/json.aspx?Appid=' . $appid . '&sources=web&query=' . urlencode( $searchitem);
$response = file_get_contents($request);
$jsonobj = json_decode($response);
foreach($jsonobj->SearchResponse->Web->Results as $value)
{
//$value->Url
//$value->Title
//$value->Description
}