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 :: Версия для печати :: Cache -> постраничный
Форумы портала PHP.SU » » Вопросы новичков » Cache -> постраничный

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

1. maragon - 23 Июня, 2015 - 15:54:10 - перейти к сообщению
Функции кеша: (запись \ чтение)
PHP:
скопировать код в буфер обмена
  1. function create_cache($prefix, $cache_text) {
  2.         $filename = ENGINE_DIR.'/cache/'.$prefix.'.tmp';
  3.         $fp = fopen($filename, 'wb+');
  4.         fwrite($fp, $cache_text);
  5.         fclose($fp);
  6.         @chmod($filename, 0666);
  7. }
  8. function view_cache($prefix) {
  9.         $filename = ENGINE_DIR.'/cache/'.$prefix.'.tmp';
  10.         return @file_get_contents($filename);
  11. }


+ serilize / unserialize

Такой штукой кеширую блоки у пользователей сайта (информацию и прочее).
Возможно ли закешировать постраничную навигацию?
Например вытаскиваю все фотографии или же аудиозаписи постранично.

Пример кеширования данных пользователя:
PHP:
скопировать код в буфер обмена
  1.  
  2. $id = intval($_GET['id']); //ID пользователя
  3. $row = unserialize(view_cache('profile_'.$id)); //Смотрим кэш
  4. if(!$row){ //Проверяем на наличие кеша, если нету то выводи из БД и создаём его
  5. $row = $db->super_query("SELECT * FROM `users` WHERE `user_id` = '".$id."'");
  6. if($row){
  7. create_cache('profile_'.$id, serialize($row)); // Создаём кеш
  8. }
  9. } else { //Кеш есть - вытаскиваю
  10. echo $row['user_login'];
  11. }
  12.  

 

Powered by ExBB FM 1.0 RC1