class DarkRaha extends com { // разработка приложений
            String a="Главная" b="Контакты" c="О сайте"
};

PHP

для CGI

переменные окружения
шаблон сайта
кэширование страниц
HTTP заголовок
пользователи сайта
загрузка файлов
загрузка файлов в БД

БД

PHP+MySql,PHP+PostgreSql

PHP API

Справочник по PHP CGI

Кэширование страниц

Кэширование динамических страниц используется для снижения нагрузки на сервер и ускорение выдачи результата пользователю. Существуют готовые системы кэширования типа Memcache, здесь же рассмотрена схема простого файлового кэширования.

Схема примерно такая. Смотрим есть ли запрашиваемая страница в кэше. Если есть проверяем не устарела ли она. Если все ок, выдаем пользователю. Если страницы нет или она устарела - генерируем страницу, сохраняем ее в кэш, и выдаем результат пользователю. Хранение кэшированных данных можно реализовать и в базе данных.

Пусть кэшируемые файлы хранятся в отдельной директории cache, а в остальном повторяют файловую структуру сайта. Тогда в начало генерации страницы добавьте следующий код.


<?php 
$reqPage = $_SERVER['SCRIPT_FILENAME']; // запрашиваемая страница 

// готовая страница
$cachePage = str_replace($_SERVER['DOCUMENT_ROOT'], 
    $_SERVER['DOCUMENT_ROOT']."/cache",$_SERVER['SCRIPT_FILENAME']);

// директория где хранится готовая страница    
$cacheDir= dirname($cachePage); 

// если можно взять из кэша, берем оттуда
if (file_exists($cachePage) && 
    (filemtime($reqPage)< filemtime($cachePage))) {  
       include($cachePage);
       exit;
}

// формируем кэш
ob_start();

// далее формируем страницу
... 
?>

А в самый конец следующий код.


<?php
 // создаем директорию
if (!file_exists($cacheDir)){ 
    mkdir($cacheDir, 0700,true);
}

// сохраняем результат в файл
 $cashefile = fopen($cachePage, 'w'); 
 fwrite($cashefile, ob_get_contents());
 fclose($cashefile); 
 
 // выдаем результат браузеру
 ob_end_flush(); 
?>

Если используется шаблонизация сайта как на этом сайте, то после изменений в шаблонах надо очистить кэш. В данном случае удаляется директория cache в корне сайта.

В некоторых случаях задают время жизни кэшируемой страницы, например 1 день.


Рейтинг@Mail.ru