2015-09-23 3 views
0

Это мой код:Дополнительные шаблоны маршрута PHP

$url = '/'; //or 
$url = '/slug'; //or 
$url = '/slug/slug1'; //or 
$url = '/slug/slug1/slug2'; //or 
$url = '/slug/slug1/slug2/slug3'; 
$patterns = ??? 
preg_match_all($pattern, $url, $parts, PREG_OFFSET_CAPTURE); 

Что такое шаблон, чтобы удовлетворить все URL выше? Кто-нибудь может мне помочь?

+0

Я не уверен, что я спокойно слежу за вами, вы понимаете, что ваш '$ url' всегда будет '$ url = '/ slug/slug1/slug2/slug3';'? – Epodax

ответ

1

Эта модель удовлетворяет их всех:

$pattern = "!^/(slug|slug(/slug\d+)+)?$!"; 

Но, конечно же, ваш вопрос должен быть «Удовлетворить все URL выше, и никто другой», потому что «/» также соответствует их всех ...

0

Зачем использовать шаблон? Если все, что вы хотите, это части URL, гораздо проще решение ...

$parts = explode('/', trim($url, ' /')); 

(Обратите внимание, что я trim начальные и конечные пробелы и / (косая черта), так что я не получаю пустой string "" как первый или последний элемент массива $ parts - если только $ url не был «/».)

Смежные вопросы