renatorib/otinfo

Open Tibia 服务器信息解析器

dev-master 2015-05-26 23:33 UTC

This package is not auto-updated.

Last update: 2024-09-28 16:39:19 UTC


README

通过IP和端口从服务器响应中获取信息

安装

只需下载此存储库,并将 otinfo.php 包含在内 重要:必须有一个可写的 cache 文件夹与 otinfo.php 在同一级别,否则将无法正常工作

include('otinfo.php');

开始使用

要实例化一个 otserv,创建一个新的 Otinfo 对象

$server = new Otinfo\Otinfo('shadowcores.twifysoft.net');

第一个参数是服务器 $ip,第二个是 $port(默认为 7171)

获取信息

if ($server->execute()) {
  echo "Players online: " . $server->players['online'] . "<br />";
  echo "Server location: " . $server->serverinfo['location'] . "<br />";
  echo "Client version: " . $server->serverinfo['client'] . "<br />";
  // these are just a few examples
} else {
  echo "Server offline";
  // if execute() returns false, the server are offline
}

`execute()` 方法会捕获/解析服务器返回的响应,如果服务器离线,则返回 false。

可能的响应

每个服务器都有自己的响应,可能与其他服务器不同。这意味着并非所有服务器都返回相同的信息,一个服务器可能拥有其他服务器没有的信息。

以下是一些可能的答案节点

  • 玩家
  • 服务器信息
  • motd
  • 所有者
  • 怪物
  • 地图
  • NPC
  • 可能还有其他

这意味着如果想要测试,可以使用 print_rvar_dump 等,以了解返回响应的节点

print_r($server->players);
print_r($server->serverinfo);
//etc

缓存

Otinfo 缓存不仅为了性能,还为了避免由于 tfs 保护而导致的空响应。如前所述,您必须在 otinfo.php 同级目录下有一个可写的 cache 文件夹,否则将无法正常工作。默认缓存时间为 180 秒(三分钟)。您可以在 otinfo.php 中编辑此行进行更改

private static $cache = 180; //seconds you want

超时

当连接不好时,您可以增加超时时间

private static $timeout = 5; //seconds you want

由 Renato Ribeiro 和 Ranieri Althoff 用 ❤️ 制作

贡献者 - 我衷心的感谢

  • gpedro
  • rmobis
  • yrpen
  • DSpeichert