在 PHP 中你可能会遇到这样的情况:
// EDIT: only need to use urlencode() on user supplied variables
//$url = urlencode("http://xyz.com/api?apikey=foo&v1=bar&v2=baz");
$url = "http://xyz.com/api?apikey=foo&v1=bar&v2=baz";
$response = file_get_contents($url);
The $response
将包含一个字符串xyz.com
访问时输出$url
(如果您访问过,您会看到$url
直接地)。
你的下一个工作是解析$response
基于其数据结构(例如 XML、JSON 等),以便其余代码可以使用它。
有几个用于解析 XML 或 JSON 的 PHP 库。就我个人而言,我更喜欢使用SimpleXMLElement
and json_decode()
它包含在 PHP 5 >= 5.2.0 中。
根据 API,如果它不理解请求,它可能会向您发送某种错误代码/响应结构$url
您可以在解析响应后检查它。
If $response
返回 false,则通常与通信时出现一些错误$url
.
我发现有一种直观的方式来思考这些XHR
请求是您传递参数(GET
参数)到函数(API URL)。 API URL 的响应就像函数的 return 语句。
UPDATE:
API 示例Groupon http://sites.google.com/site/grouponapiv2/api-resources/deals正如OP在评论中所建议的:
$apikey = "client_id=abcd1234567890";
$division = "division_id=chicago";
$url = "http://api.groupon.com/v2/deals?" . implode("&", array($apikey, $division));
$response = file_get_contents($url);
$deals = json_decode($response, true);
foreach($deals['deals'] as $deal){
$format = 'Deal: <a href="%s">%s</a><br/>';
echo sprintf( $format, $deal['dealURL'], $deal['announcementTitle']);
}
上面的代码将打印出芝加哥地区所有交易标题和网址的列表。如果你看一下Sample JSON Response
Groupon API 页面上的部分,它将为您提供将映射到关联数组的整个数据结构$deals
.
如果有任何一个GET
API 的参数由用户提供(例如,从 Web 表单),您将需要执行类似的操作$division = "division_id=" . urlencode($user_input);
.