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);
Output for 7.2.0 - 7.2.34, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.33, 8.2.0 - 8.2.29, 8.3.0 - 8.3.25, 8.4.1 - 8.4.12
store/view/{id}/{name}

preferences:
127.02 ms | 407 KiB | 5 Q