Для того чтобы вытащить из роута параметры по определенному формату в 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() перед использованием. Это позволит учесть случаи, когда параметр отсутствует в роуте или его значение не соответствует ожидаемому формату.