Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Нужны ли сессии для хранения больших массивов?
Форумы портала PHP.SU » » Вопросы новичков » Нужны ли сессии для хранения больших массивов?

Страниц (1): [1]
 

1. _Виталий_ - 14 Июля, 2015 - 00:34:44 - перейти к сообщению
Всем привет!
На сайте лежит файл со всякой информацией. При каждом открытии html-страницы этот файл открывается fopen, далее циклом пробегаю по всему файлу и формирую пару десятков массивов, с которыми потом работаю.
Наткнулся на инфу про куки/сессии и решил поработать с сессиями.
Поставил в начале каждой страницы if (isset($_SESSION["переменная1"])). Если переменной нет, то делаю fopen, цикл и запихиваю массивы в $_SESSION. Если переменная есть, то иду дальше, то есть получается, что при переходе со страницы на страницу "таскаю" за собой свои массивы.
Проделал все это в надежде ускорить загрузку страницы, но что-то не пойму. Файл, который fopen открывает, весит около 50 кб. Сессии получаются под 200 кб. Так, на глаз, разницы в скорости загрузки страницы я не вижу. Может в моем случает сессии не нужны?
И еще. Народ пишет, что после закрытия браузера сессии автоматически удаляются. У меня за день их хренова туча накопилась, вручную удалил. Как задать автоудаление?
2. tuareg - 14 Июля, 2015 - 01:08:30 - перейти к сообщению
Может просто надо почитать про сессии? Это такие же файл ))
3. LIME - 14 Июля, 2015 - 11:12:25 - перейти к сообщению
tuareg эээ...не обязательно....хотя я думаю ты в курсе
_Виталий_ на глаз будет заметно только при высокой нагрузке
Если оно тебе не надо то не надо ....мозг себе насиловать
А вообще сессии тупо проще в использовании...используй
(Добавление)
_Виталий_ пишет:
Народ пишет, что после закрытия браузера сессии автоматически удаляются.
что за народ?
Такие вопросыУлыбка...как будто собеседование прохожуУлыбка
Не сессии удаляются а сессионный токен
Сессии удаляются по крону в последних дебиан совместимых
До того удалялись по рандому от запроса
Что за сервер? На чем?
4. _Виталий_ - 14 Июля, 2015 - 18:49:33 - перейти к сообщению
tuareg пишет:
Это такие же файл ))

Вот поэтому и спросил здесь, чтобы мои предположения подтвердились. Я ж когда про сессии на php.su почитал, решил, что _session в оперативке сервера сидит пока браузер не будет закрыт. А на самом деле получил не просто файл, а кучу файлов.
5. LIME - 14 Июля, 2015 - 18:59:02 - перейти к сообщению
_Виталий_ пишет:
что _session в оперативке сервера сидит пока браузер не будет закрыт. А на самом деле получил не просто файл, а кучу файлов.
на самом деле так и есть только не в оперативке а в кэше дисковой системы
этот кэш есть в ОС
есть он и в самом диске
короче сложный вопрос и вариативный
но все же стоит переййти на сессии
хотя бы потому что потом узнаешь что для сессий возможны разные хранилища
и в бд ее можно держать и в редисе
а вообще я не понимаю зачем тебе это надо? в смысле быстродействия
сессии тупо удобнее
вот и пользуй
тебе ох как рано думать об оптимизации
(Добавление)
_Виталий_ пишет:
пока браузер не будет закрыт
он перед закрытием по твоему оповещает сервер чтоб тот удалил сессию?
Гыыы)))
ооой
(Добавление)
LIME пишет:
Не сессии удаляются а сессионный токен
6. _Виталий_ - 14 Июля, 2015 - 19:05:19 - перейти к сообщению
LIME пишет:
что за народ?

народ - те, кто плодит блоги.
LIME пишет:
Не сессии удаляются а сессионный токен

пусть будет так.
для меня на сегодня важно то, что файл был создан и файл должен будет удалиться
LIME пишет:
Что за сервер? На чем?

без понятия, я пока в основах разбираюсь.
с запуском задания по крону, наверное, тоже придется немного ознакомиться, т.к. все тот же народ пишет, что автоматически файлы сессий могут не удаляться.
у меня кстати стоит в php.ini частота gc 1/1000, хотя насколько я понял норма 1/100, а как ее поменять пока не пойму.
7. esterio - 14 Июля, 2015 - 19:10:40 - перейти к сообщению
LIME
Я бы не тсал так утверждать что именно сессии нужны. Вангую что файлик для всех один и тот же. Поетому проще открить файл, сделать с него массив и с этот же массив сериализировать и класть в файл. Как по мне куда проще.
Примерно вот так
PHP:
скопировать код в буфер обмена
  1. if(!file_exists('cache'))
  2. {
  3.     $array = make_array(); // функция которая формирует массив с файла как пример
  4.     file_put_contents('cache', serialize($array));
  5. }
  6. else
  7. {
  8.     $array = unserialize(file_get_contents('cache));
  9. }
  10.  
  11. var_dump($array);
8. _Виталий_ - 14 Июля, 2015 - 19:16:08 - перейти к сообщению
esterio пишет:
файлик для всех один и тот же


верно.

esterio пишет:
проще открить файл, сделать с него массив и с этот же массив сериализировать и класть в файл


попробую, что это такое, спасибо.
9. LIME - 14 Июля, 2015 - 19:20:11 - перейти к сообщению
_Виталий_ ну вот
видишь ты начал ковырять и понимать
по пунктам пойдем:
_Виталий_ пишет:
народ - те, кто плодит блоги.
именно плодит
гореть им в аду
_Виталий_ пишет:
для меня на сегодня важно то, что файл был создан и файл должен будет удалиться
тебе оно надо?
тебе жалко пары килобайт на серваке?
диски терабайтные сейчас ежели чего
_Виталий_ пишет:
у меня кстати стоит в php.ini частота gc 1/1000, хотя насколько я понял норма 1/100, а как ее поменять пока не пойму.
это не важно
вернее тебя не должно волновать как удаляются сессии
то что ты вычитал про рандомное удаление это уже устарело
раньше происходила чистка по рандому от запроса...теперь по крону(в дебиановских дистрибутивах)
_Виталий_ пишет:
для меня на сегодня важно то, что файл был создан и файл должен будет удалиться
пусть лежит
зачем его удалять?
вернее его можно и нужно удалять
но для этого и существуют нестандартные хранилища сессий...типа в бд и редис
тебя не должно это волновать
пока по крайней мере
когда будет волновать тогда и узнаешь
короче юзай сессии...хороший совет
пусть плодятся файлы...пофиг
хотя иногда бывают баги...наблюдал при использовании сервака на ISP-manager(иноды захламляло)
но ясно что это не твой случай
короче пользуй сессии но контролируй их количество...если скопятся более 10 000 пиши...разберемся
а менее...пофиг))
(Добавление)
esterio ага
и писать код для файла и ловить потенциальные баги
(Добавление)
esterio ну вот зачем ты это написал?
учишь велосипедить?
(Добавление)
esterio взбесил прям!!!
(Добавление)
esterio чем твое решение отличается от классической сессии?
ЧЕМ? кроме костылей на скотче?
(Добавление)
esterio еще не забудь сделать суперглобальный доступ
тоесть какойто класс с статическим доступом
регестри
синглтон
пофиг
и снова лови потенциальные баги
оооох
блин вот лишьбы написать да?
10. _Виталий_ - 14 Июля, 2015 - 19:36:03 - перейти к сообщению
LIME пишет:
тебе жалко пары килобайт на серваке?
диски терабайтные сейчас ежели чего


вряд ли это мой случай, у меня простой хостинг и файлы сессий скорее всего входят в оплаченный объем хостинга.

LIME пишет:
пусть лежит
зачем его удалять?
вернее его можно и нужно удалять
но для этого и существуют нестандартные хранилища сессий...типа в бд и редис


у меня копятся в папке, которая в php.ini прописана
11. LIME - 14 Июля, 2015 - 19:38:32 - перейти к сообщению
_Виталий_ пишет:
у меня простой хостинг и файлы сессий скорее всего входят в оплаченный объем хостинга.
именно
_Виталий_ пишет:
у меня копятся в папке, которая в php.ini прописана
раз это хостинг то он берет на себя работу с сессиями
и ничего ты в php.ini не пропишешь
короче
перестань херней страдать
и не слушай естерио
он конечно хороший спец но тут сказал как в воду ...
esterio без обид
(Добавление)
_Виталий_ пишет:
простой хостинг и файлы сессий скорее всего входят в оплаченный объем хостинга.
это не занимает выделенный тебе диск если что
12. esterio - 14 Июля, 2015 - 22:44:58 - перейти к сообщению
LIME
Аххх ты уже забанен. Неуспел отписать. Чем же мое решение хуже сессий. Мне например кажется, что зачем каждый раз парсить файл при создании сессий, если можно это сделать раз и забыть.

 

Powered by ExBB FM 1.0 RC1