PHP:清理代码,因此它只使用1个文件

时间:2011-07-28 05:13:23

标签: php file sorting

我有一个我写过的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个文件调用?

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);
}