3v4l.org

run code in 300+ PHP versions simultaneously
<?php $pathInfo = 'store/view/14342/galaxy-s10-lite-sm-g770-8gb'; $routes = [ 'store/{id}/{pid}' => ['home/store', ['id', 'exuo', 'pid']], 'store/{id}' => ['home/store', ['id']], 'store/view/{id}/{name}' => ['home/store', ['id', 'name']], // pathInfo should match this route ]; function findRoute(array $routes, string $pathInfo): ?string { foreach (array_keys($routes) as $routePath) { $pattern = '~^' . preg_replace('/{.*?}/', '[^/]+', $routePath) . '$~'; if (preg_match($pattern, $pathInfo)) { return $routePath; } } return null; } echo findRoute($routes, $pathInfo);

preferences:
26.28 ms | 406 KiB | 5 Q