Есть таблица URL (id, parent_id, url)
1 | 0 | general
2 | 1 | about
3 | 1 | cars
4 | 1 | contacts
5 | 3 | mercedes
6 | 3 | ford
7 | 6 | foсus
В конечном виде это выглядит так:
/about/
/cars/
/cars/mercedes/
/cars/ford/
/cars/ford/foсus/
/contacts/
Как хранить данные, я разобрался.
Вопрос: Как их читать и проверять на существование? Хочу понять именно метод. В инете так ничего и не нашел, понять механизм одной выбранной CMS тоже оказалось сложно.
Цель:
ввести адрес /cars/mercedes/ получить 5
ввести адрес /car/mercedes/ получить 0, т.к. такой категории не существует. Это как в WIN XP, в проводнике, когда путь неверный, получаем ошибку.
Метод 1 (первое, пришло в голову)
URL разбиваем на массив, последний элемент массива ищем в таблице и поехали составлять полный путь в обратном направлении для всех найденных значений. В конце сравним полученные пути с $_SERVER['REQUEST_URI'] и получим id страницы, если таков есть.
Метод 2
Хранить полные адреса (от корня сайта) в базе, но тогда возникнет много вопросов с переименованием папок.
Больше ничего в голову не пришло, но думаю, это не самые лучшие решения.
_____________
..Работает - не трогай!