Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > fopen()


Автор: adamant 8.3.2006, 09:31
Поискал так и не понял нифига... smile
Предположим у нас есть:
1) $_COOKIE['name'];
2) date.txt В корне/
Я хочу сделать так: как тока кука появилась в файл date.txt добавляеться строчка "++" с инфой из куки например 'adamant' и через 15 мин неактивности del
мне без разницы через что это делать socet fopen или чё нить ещё Главное это не База Mssql / MySql а простой файл date.txt

Автор: -=Ustas=- 8.3.2006, 09:50
Код

$fp = fopen("data.txt", "a+");
..// далее записываешь
fclose($fp);

Добавляешь еще время записи на 15 минут вперед, а затем уже проверяешь его от текущего времени и удалаяешь.

Автор: CyClon 8.3.2006, 09:54
Код
<?php

if (!empty($_COOKIE['name']))
{
    $file = file("data.txt");
    foreach ($file as $string)
    {
        $data = explode("|", $string); // У нас в файле data.txt все записано в формате "логин|время"
        if ((date("YmdHi") - $string[1]) < 900) // Если юзер активен, то пишем его в массив
        {
            $list[] = $string;
        }
    }
    $list[] = $_COOKIE['name']."|".date("YmdHi"); // Добавляем себя в список
    unset($file);
    $file = fopen("data.txt", "w"); // Открываем файл для записи и очищаем его
    fwrite($file, $list); // Пишем в файл весь массив
    fclose($file); // Закрываем файл
}

?>


Вот что-то вроде этого. Правда еще нужно сделать проверку на наличие "себя" в списке, а то 1 чел может на 100 записей расплодиться smile
Добавлено @ 09:58
Код
<?php

if (!empty($_COOKIE['name']))
{
    $file = file("data.txt");
    foreach ($file as $string)
    {
        $data = explode("|", $string); // У нас в файле data.txt все записано в формате "логин|время"
        if ($string[1] == $_COOKIE['name'])
        {
            $online = 1;
        }
        if ((date("YmdHi") - $string[1]) < 900) // Если юзер активен, то пишем его в массив
        {
            $list[] = $string;
        }
    }
    if (empty($online))
    {
    $list[] = $_COOKIE['name']."|".date("YmdHi"); // Добавляем себя в список, если нас там еще нет
    }
    unset($file, $string, $data);
    $file = fopen("data.txt", "w"); // Открываем файл для записи и очищаем его
    fwrite($file, $list); // Пишем в файл весь массив
    fclose($file); // Закрываем файл
}

?>

Автор: adamant 8.3.2006, 14:21
Благодарю, время появиться напишу о результатах и линк дам
Добавлено @ 14:23
А зачем очищать?
Код

// Открываем файл для записи и очищаем его

и не поможешь написать проверку на самого себя?

Автор: Ciber SLasH 8.3.2006, 17:43
2CyClon:
А я не понял зачем ты пишешь unset(), когда переменные всё равно разрушаются после закрытия сценария. Я так понимаю память это всё равно не освобождает.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)