我一直在使用file_get_contents和curl来从其他网站获取数据。但是我们都知道如果该网站的所有者更改其html会发生什么。因为很多人说我们可能会制作API以避免这些事情。< strong>(1)我的第一个问题是我们可以在任何类型的网站上做这个或者这只适用于像youtube twitter facebook这样的大型网站吗?
(2)第二个问题是如何制作这个?有人可以简要解释一下,或者请给我指南
我很抱歉,我知道这只是一个愚蠢的问题,但在搜索了几天之后我仍然对API没有正确的想法
答案 0 :(得分:1)
任何人。无处不在。任何东西。
制作API有很多方法。
首先,你需要知道一些事情:
解释如何创建API,
我会用JSON。要定义内容类型,请使用header()函数:
header('Content-Type: application/json');
定义允许的网站来源(仅当其他网站将使用此API时):
header('Access-Control-Allow-Origin: http://yourwebsite.com');
完成此操作后,即可开始使用API。
这就像任何PHP代码,这是一个例子:
首先,您可能需要获取所有$ _GET变量。
至于我,我将它们全部保存为:
if(!empty($_GET)) {
foreach($_GET as $eachKey => $eachValue) {
${'param_' . $eachKey} = $eachValue;
}
}
示例:$_GET['hello'] => 'world'
将为$param_hello = 'hello'
然后,你的代码。
首先,您需要设置响应var。对于JSON,它将是一个数组。
$response = [];
例如,我将使用mt_rand()函数。
此值将作为$response
键保存在['result']
数组中。
$reponse['result'] = mt_rand($param_min, $param_max);
现在,API已经完成,所以我们需要写下回复:
echo json_encode($response);
die(); // Then end the script
建议使用此方法,并且对AJAX请求(大多数与API一起使用)非常有效
忘记$response
和json函数。
这种方式的最佳内容类型是:
header('Content-Type: text/plain');
只是回应结果:
echo mt_rand($param_min, $param_max);
我在这里提问。 你有互联网,或PHP Manual了解更多信息。