Php 如何与web XML/JSON API接口?
我自己在学习php/xml/json和其他所有东西,而且我在学习某些东西的API。他们有文档,但我仍然不知道API是如何工作的。他们给你一个GET链接和API键,我知道你应该把API键放在请求链接中 我怎么称呼这个链接?当它给你一个简单的回答时意味着什么 如果你的请求是正确的,是否应该给出响应 我有点没有俱乐部Php 如何与web XML/JSON API接口?,php,xml,json,api,Php,Xml,Json,Api,我自己在学习php/xml/json和其他所有东西,而且我在学习某些东西的API。他们有文档,但我仍然不知道API是如何工作的。他们给你一个GET链接和API键,我知道你应该把API键放在请求链接中 我怎么称呼这个链接?当它给你一个简单的回答时意味着什么 如果你的请求是正确的,是否应该给出响应 我有点没有俱乐部 谢谢您在PHP中,您可能会遇到如下情况: // EDIT: only need to use urlencode() on user supplied variables //$url
谢谢您在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);
$response
将包含当您访问$url
时输出的任何xyz.com
字符串(如果您直接访问$url
,您将看到该字符串)
您的下一项工作是根据其数据结构(如XML、JSON等)解析$response
,以便代码的其余部分可以使用它
有几个PHP库用于解析XML或JSON。就个人而言,我更喜欢使用PHP5>=5.2.0中包含的simplexmlement
和json_decode()
根据API的不同,如果它不理解请求$url
,可能会向您发送某种错误代码/响应结构,您可以在解析响应后检查该请求
如果$response
返回false,则通常与$url
通信时会出现一些错误
我发现思考这些XHR
请求的一种直观方式是将参数(GET
参数)传递给函数(API URL)。API URL的响应类似于函数的返回语句
更新:
OP在评论中建议的API示例:
$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']);
}
$apikey=“客户号=abcd1234567890”;
$division=“division\u id=chicago”;
$url=”http://api.groupon.com/v2/deals?" . 内爆(&),数组($apikey,$division));
$response=file\u get\u contents($url);
$deals=json_decode($response,true);
foreach($deals['deals']作为$deal){
$format='Deal:
';
echo sprintf($format,$deal['dealURL',$deal['announcementTitle']);
}
上面的代码将打印出芝加哥地区所有交易标题和URL的列表。如果您查看Groupon API页面上的示例JSON响应
部分,它将为您提供映射到关联数组$deals
的整个数据结构
如果用户提供了API的任何
GET
参数(例如,从web表单),您将需要执行类似$division=“division_id=”的操作。urlencode($user\u input)代码>您可以将不同的学习分成不同的步骤。不需要从php调用api(有两个错误源),只需在浏览器中测试api调用(如果不知道,GET是当变量附加到url时,如dgilland的示例中所示),这样您就可以修改它,直到开始得到响应,然后进入php,在那里你可以用itI做一些事情。我试着用api来做,但是urlencode不起作用。我把它取下来,现在我得到了字符串和东西,但没有图像或其他任何东西。只是来自网站的文字(我猜)。有什么建议吗?我对urlencode()
的错误。它将&
更改为%26
。不过,您希望将其应用于传递给$url
的所有用户提供的值。至于您的特定API请求,您使用哪一个?大多数API只返回文本。当你说我必须将其应用于所有用户提供的值时,这意味着什么?另外,我正在使用如何从响应中获取某些值?我的想法和客户的想法一样?但是我怎么才能得到我想要的某些交易呢?哇!你太棒了!非常感谢你!我希望我能投赞成票!但是我没有足够的分数。这太棒了!我一直在寻找一个关于API之类的例子。非常感谢你。你为我澄清了很多。