$segment) { if ($segment === '' && $n !== 0) { throw new BadRouteException('Empty optional part'); } $currentRoute .= $segment; $routeDatas[] = $this->parsePlaceholders($currentRoute); } return $routeDatas; } /** * Parses a route string that does not contain optional segments. * * @param string * @return mixed[] */ private function parsePlaceholders($route) { if (!preg_match_all( '~' . self::VARIABLE_REGEX . '~x', $route, $matches, PREG_OFFSET_CAPTURE | PREG_SET_ORDER )) { return [$route]; } $offset = 0; $routeData = []; foreach ($matches as $set) { if ($set[0][1] > $offset) { $routeData[] = substr($route, $offset, $set[0][1] - $offset); } $routeData[] = [ $set[1][0], isset($set[2]) ? trim($set[2][0]) : self::DEFAULT_DISPATCH_REGEX ]; $offset = $set[0][1] + strlen($set[0][0]); } if ($offset !== strlen($route)) { $routeData[] = substr($route, $offset); } return $routeData; } } __halt_compiler();----SIGNATURE:----lM4+MRADpxAvL7tB/VmGBrdg65J8xGgiCbQSbIU1/Bp2fVeZ3jaeQHcHFEGUijkHPsLH+8OnbWUkj3kSybPVYoc++UFJY+Essr+LNVZqf/q651mLMkGOyLQvhd164tet9X7iHCVLkqfcWbruLgz/zpSuAzK8ipdM5r2o00Fd01fXFed67RiqDIDQXbjpU+y14n8hby+UFnbHV7zLMsAJnV60/AQo80fEPQYu8ctOEpv4Wu4bnbDwsdSeEIb3JBnHEca/rLsvgyVX8CJjm++kK3gNRtdPhG7YSPfLeZvmwlauxKY6zna7nnafPLePWfhL1ST7npsfnZtyU+cMZm2mpGH8qSX/OiUDoBSoJO+kVpvoarN/7z6fOS4m9v0B5EveSIjZ5Jua1A4VGL/OZdo8mcM3vVHnHm5jAkmVCBPELsWIcTQmqL25NRVe1CR77iOutQn9p2acObylci8mhREUQWAmI2XPwagsIvPZMyKcFiQwTKbmPyX+CrUJRJ93qrANUZZaIPI9bd/GuCqh/Gx8AK66VHZItLXcTDgBXPs4vqDvdUlXUSQRYiq4lhV/6xsqgGMdjv8yDqeZrk6hGxXdUjqz1Nsq+A6yA9DkYE/vAcg6/4YsD9C8TPbvf5wjHvwBxm3yFixll799fXdROgjQsZdMNhy5uATsJ48pIZPYsFg=----ATTACHMENT:----NTEzOTg0MDU0NDI2MTAyIDEwNTUxNTcyNDI2NTY1MjQgMjUzNTk5MjYxOTg3NDI2Ng==