preg_match_all и данные в $matches?

255
14 марта 2017, 16:21

Пишу систему роутеров, есть такой код (проверка url):

if (preg_match_all(
    '#^'.$uri.'$#', $currentUrl, $matches, PREG_SET_ORDER
 )) {
     $matches['call'] = $v['call'];
     $matches['middleware'] = $v['middleware'];
     echo '<pre>';
     print_r($matches);
 }

Если у меня указано больше 1го роутера:

Route::get('/', '\app\controllers\index\MainController@methodName');
Route::get('/url', '\app\controllers\index\MainController@methodName');

, то результат ($matches) будет пустым если будет использован не последний роутер. То есть, если я использую /url - все корректно работает, если / - в $matches пустота.

Ниже этого условия так же есть print_r($matches) Если указанно больше 1го роутера, то в условие (if (preg_match...) print_r($matches) - содержит информацию для любого url (если совпадает), а print_r($matches) который уже ниже условия - не содержит информации.

То есть: Если указанно больше 1го роутера, то $matches содержит информацию в if () , ниже - нету.

Array
(
 [0] => Array
    (
        [0] => url
    )
)
// второй print_r
 Array
 (
 )
Answer 1

Не внимательный я:с

Не сделал break;

Answer 2

Альтернативный вариант :

$uri = '\app\controllers\index\MainController@methodName';
$route = explode('\\', trim($uri, '\\'));
echo '<pre>'; var_dump($route); echo '</pre>';
/*
array(4) {
  [0]=>
  string(3) "app"
  [1]=>
  string(11) "controllers"
  [2]=>
  string(5) "index"
  [3]=>
  string(25) "MainController@methodName"
}
*/
READ ALSO
PHP: выводит в строке &ldquo;\&#39;&rdquo; вместо &ldquo;&#39;&rdquo;

PHP: выводит в строке “\'” вместо “'”

ЗдравствуйтеПомогите разобраться, пожалуйста

239
Работа с функциями

Работа с функциями

Есть функция удаления динамических компонентов:

247
Android-уведомление на Qt

Android-уведомление на Qt

Здравствуйте! Пишу небольшое приложение на Qt для андроидИ интересно стало, как присылать пользователю уведомления? Например: "Уже 8 часов...

437
Плагины для sublime text 3

Плагины для sublime text 3

Добрый день, подскажите пожалуйста полезные плагины для удобного написания кода на С++ в sublime text 3

349