The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Проблема с массивом(Наверное)"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Программирование под UNIX (PHP)
Изначальное сообщение [ Отслеживать ]

"Проблема с массивом(Наверное)"  +/
Сообщение от core (ok) on 02-Май-11, 17:52 
<?php
class mysession
{
    var $mark;
    var $path;
    var $name;
    function mysession($mark='mysession_')
    {
    $this->mark = $mark;
    }
    function getfilepath($id)
    {
    return($this->path . '/' . $this->mark . $id);
    }
    function open($path, $name)
    {
    $this->path = $path;
    $this->name = $name;
    return(TRUE);
    }
    function close()
    {
    return(TRUE);
    }
    function read($id)
    {
    if($fp = @fopen(getfilepath($id), "r"))
    {
        return(fread($fp,filesize($this->getfilepath)));
    }
    else
    {
        return("");
    }
    }
    function write($id, $data)
    {
    if($fp = @fopen($this->getfilepath($id), "w"))
    {
        return(fwrite($fp, $data));
    }
    else
    {
        return(FALSE);
    }
    }
    function destroy($id)
    {
    return(@unlink($this->getfilepath($id)));
    }
    function garbage($lifetime)
    {
    $d=dir($this->path);
    while($f = $d->read())
    {
        if((strpos($f, $this->mark) == 0 ) AND ( time() > (fileatime($f) + $lifetime)))
        {
        unlink("$this->path/$f");
        }
    }
    $d->close();
    return(TRUE);
    }
}
$s = new mysession();
print_r($s);
print("
");
session_set_save_handler( array($s, 'open'),array($s, 'close'),array($s, 'read'),array($s, 'write'),array($s, 'destroy'),array($s, 'garbage') );
session_start();
if(!isset($_SESSION['a']))
{
    print("Initializing session
");
    $_SESSION['a'] = 'Session Var A';
    $_SESSION['b'] = 123.45;
    $_SESSION['c'] = 0;
}
$_SESSION['c']++;
print("Counter: " . $_SESSION['c'] . "
");
print("Session archive: " . session_encode() . "
");
print_r($s);
print("
\n");
?>
Насколько я понимаю автор пытался создать свой алгоритм хранения куки или нечто подобное
Не понимаю конкретно вот это
session_set_save_handler( array($s, 'open'),array($s, 'close'),array($s, 'read'),array($s, 'write'),array($s, 'destroy'),array($s, 'garbage') );
Что это? Функция session_set_save_handler() насколько я понял позволяет задать свой алгоритм управления сессиями ожидая на входе шесть параметров, но что это?  array($s, 'open') никогда не сталкивался с подобным синтаксисом.
Буду рад если ктото поможет разобраться.

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Проблема с массивом(Наверное)"  +/
Сообщение от JohnProfic (ok) on 02-Май-11, 17:59 
> Насколько я понимаю автор пытался создать свой алгоритм хранения куки или нечто
> подобное
> Не понимаю конкретно вот это
> session_set_save_handler( array($s, 'open'),array($s, 'close'),array($s, 'read'),array($s,
> 'write'),array($s, 'destroy'),array($s, 'garbage') );
> Что это? Функция session_set_save_handler() насколько я понял позволяет задать свой алгоритм
> управления сессиями ожидая на входе шесть параметров, но что это?  
> array($s, 'open') никогда не сталкивался с подобным синтаксисом.
> Буду рад если ктото поможет разобраться.

http://php.net/callback

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Проблема с массивом(Наверное)"  +/
Сообщение от core (ok) on 02-Май-11, 18:06 
>> Насколько я понимаю автор пытался создать свой алгоритм хранения куки или нечто
>> подобное
>> Не понимаю конкретно вот это
>> session_set_save_handler( array($s, 'open'),array($s, 'close'),array($s, 'read'),array($s,
>> 'write'),array($s, 'destroy'),array($s, 'garbage') );
>> Что это? Функция session_set_save_handler() насколько я понял позволяет задать свой алгоритм
>> управления сессиями ожидая на входе шесть параметров, но что это?
>> array($s, 'open') никогда не сталкивался с подобным синтаксисом.
>> Буду рад если ктото поможет разобраться.
> http://php.net/callback

Там на английском, попытаюсь разобраться так, но и на том все-же спасибо, хотя бы знаю в какую сторону теперь копать.

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру