我正在制作类似名人堂的东西 - 我的Minecraft服务器上排名前100位最富有的玩家。这个服务器使用经济插件,它将钱(和其他)数据存储在文件中......一个玩家=一个文件。
此文件如下所示:
socialspy: false
lastlocation:
world: Survival
x: 156.36720714234835
y: 82.0
z: 11.384548164747013
yaw: 296.55
pitch: 1.7999992
timestamps:
login: 1380986935777
lastteleport: 1380987528677
logout: 1380987865394
kits:
zaklad: 1380888323725
ipAddress: 178.41.105.216
money: '103954.67357957785035400'
homes:
home:
world: plotworld
x: 59.78763477381829
y: 67.0
z: 23.01163962746715
yaw: -36.45163
pitch: 15.150063
logoutlocation:
world: plotworld
x: 32.7432724160324
y: 65.5
z: 36.79093180216559
yaw: -105.751495
pitch: 4.6499953
但是每个玩家的播放器都有所不同......可能会丢失一些信息(金钱价值也是如此!所以每个文件中没有钱的行)
好吧,我的服务器上有数百个这样的文件,我想只读它们并得到 money:'amount'值,然后将它存储在MySQL中并在60后再次读取文件分钟......(所以这个名人堂将每小时重装一次)。
有一个问题:由于内存和时间限制,它太快了,它无法完成......我在网络端运行这个脚本...服务器位于远程服务器上,我正在访问它通过'ftp://user:pass@host
'
我已经尝试了fgets和file_get_content,但是有很多文件,我正在寻找一种更快,更有效的方法,如何做到这一点。