Просмотр сообщений

В этом разделе можно просмотреть все сообщения, сделанные этим пользователем.


Сообщения - gerra

Страницы: [1]
1
PHP / 3 в одном
« : 26 Февраля 2002, 19:42:23 »
Сделал скрипт, который записывает и сортирует текстовый файл рекордов. Для того, чтобы данные не испортились при одновременном доступе, я его блокирую. Но вот какая штука получается. По ходу выполнения скрипта сам файл приходится открывать несколько раз (с разными вариантами записи и перезаписи) и поэтому сама блокировка получается не эффективной. Подскажите, как перезаписать отсортированные данные в тот же файл, одновременно стерев старые данные. (или как сделать мой скрипт, открывая файл один раз).
Сам скрипт: (производит запись и сортировку таблицы рекордов на 20 игроков)

$date = date("d m Y");
$mes = "$name, $score, $email, $date\\n";
$fa = "record.txt";
$cartFile1 = fopen($fa,"a+");
flock($cartFile1,2);
fputs($cartFile1,$mes);
fclose($cartFile1);

$cartFile = fopen($fa,"a+");
flock($cartFile,2);
while($line = @fgets($cartFile, 1024)) {
$list = f.$i;
$$list = explode(",",($line));
$i++;
}

function cmp_debt($a, $b)
{
if ($a[1]== $b[1]) return 0;
return ($b[1]  > $a[1]) ? 1 : -1;
}
$buddy_debts = array($f,$f1,$f2,$f3,$f4,$f5,$f6,$f7,$f8,$f9,$f10,$f11,$f12,$f13,$f14,$f15,$f16,$f17,$f18,$f19,$f20);
usort($buddy_debts, \'cmp_debt\');
foreach ($buddy_debts as $buddy_debt) {
$fileN = $fileN. implode(",", $buddy_debt);
}

$cartFile = fopen($fa,"w+");
flock($cartFile,2);
fputs($cartFile,$fileN);
fclose($cartFile);

$cartFile = @fopen($fa,"r+");
flock($cartFile,2);
while (true) {
$last_addr = $addr;
$addr = ftell($cartFile);
if (!@fgets($cartFile, 1024))
break;
}
ftruncate ($cartFile, $last_addr);
fclose($cartFile);
?>

2
PHP / сортировка строк
« : 20 Февраля 2002, 05:27:11 »
Есть файл со строками:

< $name = "vasya"; $score = "473">
< $name = "petya"; $score = "496">
< $name = "igor"; $score = "123">

каким образом поменять строки местами в порядке убывания по переменной $score

3
что сделать с текстовым файлом, чтоб избежать ошибок при одновременной записи в него нескольких игроков?

4
PHP / таблица рекордов
« : 15 Февраля 2002, 05:24:32 »
Сделал игрушку шоквейв. Нужно где-то фиксировать количество очков и выводить таблицу рекордов. Специально для этого теперь изучаю пхп. Но так вот с лету чего-то плохо получается. Подскажите, где взять подобный скрипт, чтоб посмотреть как сделано, а то даже не представляю с какой стороны подойти...

Страницы: [1]