加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

使用PHP从外部API / URL获取信息

发布时间:2020-12-13 22:15:08 所属栏目:PHP教程 来源:网络整理
导读:我有URL http://api.minetools.eu/ping/play.desnia.net/25565输出我的服务器的统计信息. 例如: { "description": "A Minecraft Server","favicon": null,"latency": 64.646,"players": { "max": 20,"online": 0,"sample": [] },"version": { "name": "Spig
我有URL http://api.minetools.eu/ping/play.desnia.net/25565输出我的服务器的统计信息.

例如:

{
  "description": "A Minecraft Server","favicon": null,"latency": 64.646,"players": {
    "max": 20,"online": 0,"sample": []
  },"version": {
    "name": "Spigot 1.8.8","protocol": 47
  }
}

我希望获得在线玩家数量的价值,以便在我的网站上显示为:在线玩家:在线金额

有人可以帮忙吗?

我试着这样做:

<b> Online players: 

<?php
$content = file_get_contents("http://api.minetools.eu/ping/play.desnia.net/25565");
echo ($content,["online"]);
}
?>
</b>

但它没有用.

解决方法

1)不要使用 file_get_contents()(如果可以帮助的话)

这是因为您需要enable fopen_wrappers才能使file_get_contents()能够处理外部源.有时这是关闭的(取决于您的主机;如共享主机),因此您的应用程序将会中断.

一般来说,一个很好的选择是curl()

2)使用curl()执行GET请求

这很简单.使用curl()发出带有一些标头的GET请求.

$curl = curl_init();

curl_setopt_array($curl,array(
  CURLOPT_URL => "http://api.minetools.eu/ping/play.desnia.net/25565",CURLOPT_RETURNTRANSFER => true,CURLOPT_TIMEOUT => 30,CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,CURLOPT_CUSTOMREQUEST => "GET",CURLOPT_HTTPHEADER => array(
    "cache-control: no-cache"
  ),));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

3)使用响应

响应在JSON object中返回.我们可以使用json_decode()将其放入可用的对象或数组中.

$response = json_decode($response,true); //because of true,it's in an array
echo 'Online: '. $response['players']['online'];

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读