Здравствуйте, подскажите пожалуйста. Есть символы в виде: [controller]/[action](/[id])
Мне нужно разбить данную строку на массив с содержимым: controller, action
П.С. Если указаны скобки, то параметр не обязателен, его вносить в массив не нужно.
Например:
1) Если: [controller]/[action]/[id] то: ['controller', 'action', 'id']
2) Если: [controller]/[action](/[id]) то: ['controller', 'action']
Подскажите решение для preg_match_all
На данный момент все данные попадают в массив такой регуляркой: ![\w]+!
if( preg_match_all('/\[[a-z]{1,}\]/', '[controller]/[action](/[id])', $matches) )
{
var_dump($matches); // как и было, так и осталось
}
Должно выводить:
1) [controller]/[action]/[id] -> ['controller', 'action', 'id']
2) [controller]/[action](/[id]) -> ['controller', 'action']
ТёмнаяМатерия: Есть переменная $str в ней может лежать как первый вариант, так и второй. Срабатывать должно всегда, только данные в $matches либо с ID, либо без