Как вытащить из роута параметры по определенному формату?

Для того чтобы вытащить из роута параметры по определенному формату в PHP, можно использовать регулярные выражения или встроенные функции работы со строками.

1. Использование регулярных выражений.
В PHP существует функция preg_match(), которая позволяет искать соответствия с помощью регулярных выражений. Для извлечения параметров из роута нужно задать соответствующий паттерн, используя метасимволы и специальные конструкции. Например, если у вас в роуте есть параметр, который должен состоять только из цифр, можно использовать такой паттерн:

$route = '/users/123';
$pattern = '//users/(d+)/';
preg_match($pattern, $route, $matches);
// $matches будет содержать массив с найденными соответствиями
// $matches[1] будет содержать значение параметра (в данном случае 123)

2. Использование встроенных функций.
Если вы знаете точный формат параметра в роуте, то можно воспользоваться функциями работы со строками, такими как strpos() и substr(). Например, если у вас в роуте есть параметр, который всегда состоит из двух символов, вы можете использовать такой подход:

$route = '/products/ab';
$paramFormat = 'ab';
$foundAt = strpos($route, $paramFormat);
$paramValue = substr($route, $foundAt, strlen($paramFormat));
// $paramValue будет содержать значение параметра (в данном случае ab)

Однако этот подход требует точного знания о формате параметра и не подходит для общих случаев с различающимися форматами.

В обоих случаях рекомендуется проверить наличие значений в искомых переменных с помощью функций isset() или empty() перед использованием. Это позволит учесть случаи, когда параметр отсутствует в роуте или его значение не соответствует ожидаемому формату.