PHP: чистый код, поэтому он использует только 1 файл - PullRequest
1 голос
/ 28 июля 2011

У меня есть 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 голос
/ 28 июля 2011

Это выглядит немного странно, писать файл, который вы читаете.Лучше просто добавить время в массив в памяти, а затем записать его с другими отсортированными результатами.

Я позволил себе удалить $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);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...