XML база данных для небольшого сайта
Более двух лет назад создал сайт с каталогом продукции без использования реляционной базы, все данные сайта хранятся в одном XML файле. Сами данные заносятся вручную в файл data.xml
, и по мере необходимости структура данных дополняется.
База данных в XML формате: data.xml (143,2 Кб)
Шаблон: template.xslt (19,8 Кб)
Всё это обслуживается следующим кодом (LAMP):
.htaccess: RewriteEngine On
RewriteRule ^$ index.php?path=/ [QSA,L]
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^(.*/)$ index.php?path=/$1 [QSA,L]
index.php: <?php header('Content-Type: text/html; charset=utf-8');
$doc = new DomDocument();
$doc->load('data.xml', LIBXML_DTDLOAD + LIBXML_NOENT);
$doc->documentElement->setAttribute('counters', file_get_contents('counters.txt'));
$doc->documentElement->setAttribute('path', $_GET['path']);
$doc->documentElement->setAttribute('root', '/');
$get = $doc->createElement('get');
$doc->documentElement->appendChild($get);
foreach ($_GET as $key=>$value) {
$get->setAttribute($key, $value);
}
if (! isset($_GET['page'])) {
$get->setAttribute('page', 1);
}
$xslt = new DomDocument();
$xslt->load('template.xslt', LIBXML_DTDLOAD + LIBXML_NOENT);
$proc = new XsltProcessor();
$proc->importStylesheet($xslt);
$proc->transformToUri($doc, 'php://output');
Есть еще PHP файлы для отправки письма при заказе товара, автоматического создания уменьшенных картинок, вставки в картинку водяного знака, но это отдельная тема.
Пример сайта: http://sumkatdt.ru/