mail: djkojb@gmail.com
ICQ: 109120110
skype: ka_djko

DURLP: PHP Url parser

Простейший способ разбора URL на переменные можно посмотреть тут
И - хорошо когда вы точно знаете сколько и каких параметров вы будете добавлять к URLу в будущем, заммечательно, если проект достаточно большой чтобы использовать MVC модель, во всех остальных случаях - можно пользоваться небольшим PHP классом DURLP
Пользоваться так:
.htaccess

# Закомментируйте ниже, если скрипт должен перехватывать:
RewriteCond %{REQUEST_FILENAME} !-f # - запросы к существующим файлам
RewriteCond %{REQUEST_FILENAME} !-d # - запросы к существующим директориям
RewriteRule (.*)$ index.php?act=$1 [QSA]

Закидываем весь путь в переменную act
index.php

require("путь к классу/Durlp.php");
$syswords=Array("/sublist","/flag",":aflag");
$url=new DURLP($_GET['act'],$syswords);
if($url->fset("/flag")) print "flag is set";
//flag is set
print $url->isarray("/flag");
//false
print $url->join_array("/sublist","|");
//listel1|listel2|listel3
print_r($url->get_array("/sublist"));
// [/sublist] => Array
// (
// [0] => listel1
// [1] => listel2
// [2] => listel3
// )

http://example.com/sublist/listel1/listel2/listel3/flag:aflag
1ое - выбираем системные слова: "/sublist","/flag",":aflag"
2ое - загоняем $_GET['act'] и системные слова в DURLP
3е - получаем результат:

  • $url->fset("/flag")
    возвращает true если flag встречается в строке.
  • $url->isarray("/flag")
    возвращает true если flag идет с последующим перечислением.
  • $url->join_array("/sublist","|")
    возвращает строку состоящую из элементов списка sublist объединенных символом |.
  • $url->get_array("/sublist")
    возвращает Array состоящий из элементов списка sublist.

если в строке не встречается системных слов - массив сбрасывается в переменную "/", получить можно $url->get_array("/")
если в строке не встречается перечисление идет через запятую - массив сбрасывается в переменную ",", получить можно $url->get_array(",")
Скачать класс можно тут