我有一个我写过的PHP函数,可以分类玩家最快的比赛时间。但是,它非常脏,我是一个开始的php程序员。我想知道如何写这么简单,以便只读取1个文件:
function write_scores($name, $time)
{
$racetimes = "/home/duke/aa/servers/demo/var/logs/racetimes.txt"; //temporary file
$test = "/home/duke/aa/servers/demo/var/logs/test.txt"; //sorted file
$fh = fopen($racetimes, 'a');
$lines = file($racetimes);
fwrite($fh, "$time, $name\n");
natsort($lines);
$lines = array_slice ( $lines , 0, 5); //only store 100 scores to speed performance although $racetimes is the one that needs trimming...
file_put_contents($test, implode("", $lines));
}
我已经尝试删除了竞争对手的引用,但后来没有写入任何内容。我不能把我的大脑包裹起来。如何重写它以便它只使用1个文件调用?
答案 0 :(得分:1)
看起来有点奇怪,写下你正在阅读的文件。你最好只是将时间添加到内存数组中,然后你可以用其他排序的分数写出来。
我冒昧地从函数中删除了$test
。我假设目标是保持一个排序的分数列表。如果你真的想要两个,请重新添加$test
的所有引用。
function write_scores($name, $time)
{
$racetimes = "/home/duke/aa/servers/demo/var/logs/racetimes.txt";
$lines = file($racetimes);
$lines[] = "$time, $name\n";
natsort($lines);
if (count($lines) > 100) array_splice($lines, 100);
file_put_contents($racetimes, $lines);
}