Обработка ЧПУ не через .htaccess

Сидел вчера весь день дома, т.к. простудился. Сидел и работал над маленькими проектиками. И вдруг решил написать класс для ЧПУ, который бы мог заменить несколько строчек в .htaccess, где можно было лишь оставить одно правило RewriteRule . /index.php [L]. Конечно, полностью универсального варианта для любых ссылок не придумаешь, но для моего вариант вполне подходит.

class _getLinks {
	function _parser(){
		$furl = parse_url($_SERVER[’REQUEST_URI’]);
		$url = explode(’/’, $furl[’path’]);
		$url = array_filter($url, "strlen");
		$url = array_filter($url, "urlencode");
		$url = array_reverse($url);
		return $url;
	}

	function _getCategory() {
		$res = $this->_parser();
		return $res[1];
	}

	function _getTitle() {
		$var = $this->_parser();
		$res = preg_split("/[.\\s]/",$var[0]);
		return $res[0];
	}
}

Можно использовать ссылки вида: http://server.com/category/subcategory/title.html и получать, соответственно, url категории и url новости, которые уже можно прогонять по базе…

P.S. Подумал немного… Абсолютно бесполезная и ненужная фигня получилася :(

18.02.2007. Раздел: PHP. Ключевые слова: .

Комментариев: 13 RSS


  1. Віктар написал(а):

    А я наадварот як мага болей перакладваю на .htaccess. І нават разбор URL, і праверка на падтрымку XHTML і шмат чаго іншага – там.


  2. Віктар написал(а):

    Так… І … Пісаў гэты камент. "Хатстаронка" напісаў "http://victorgr.livejournal.com/" (са слэшам у канцы). Дык мне скрыпт напісаў, што "Гэты адрас няправільны". Хіба ж?


  3. Slaver написал(а):

    Усё ж, чым больш файл .htaccess, тым больш ён тармазіць…

    А наконт урлаў… Там памылка ў рэгулярке. Толькі нядаўна знайшоў, але яшчэ не выправіў :(


  4. Віктар написал(а):

    Ці ж?

    Ёсьць дакладныя зьвесткі?

    Мне здаецца Apache апрацуе .htaccess значна хутчэй за скрыпт (ну, гэта ня тычыцца mod_rewrite, так). Але я часта абыходжуся проста SetEnvIf.


  5. Cap написал(а):

    Блин!.. А вас тут оказываться трудно понять… Может по-русски будем дружно писать? – Ну это просто маленькое мое желание!


  6. Slaver написал(а):

    Итак блог по-русски, в отличие от livejournal. А вот комменты могут быть на любом языке, которым владею, хотя бы немного :)


  7. Cap написал(а):

    Не я конечно понимаю, но блин, тут хрен чего нормально поймешь в комментариях…


  8. Cap написал(а):

    p.s. Слав, настрой пожалуйста кнопку "Добавить", а то иногда думаешь, а комментарий на добавку ушел или нет?!.. Как стоял так и стоит перец с надписью "Добавить" ужас.


  9. =) написал(а):

    >P.S. Подумал немного… Абсолютно бесполезная и ненужная фигня получилася :(
    ну и дурак, не везде апач есть (nginx например)

  10. Не такая уж и бесполезная. Просто идею надо развивать. Можно например перед категорией можно вставлять название приложение, к которому отноститься страница (то бишь новости, статьи, FAQ, ну и т.п.)


  11. Slaver написал(а):

    Ну я уже 100 раз успел переписать этот класс… до неузнаваемости :)


  12. Виталий написал(а):

    Раз переписал – можешь поделиться. буду признателен если на мыло ))


  13. Роман написал(а):

    Да, реально вашу мову не понять :) Как говорится разделяй и властвуй.

Оставить комментарий