- var_dump: documentation ( source)
- preg_replace_callback: documentation ( source)
- preg_match: documentation ( source)
- str_replace: documentation ( source)
<?php
$params = array("full");
$route = "/user/[a-z0-9:username]+";
$path = "/user/l33t";
$reg = str_replace('/','\/',preg_replace_callback('~\[([a-z0-9\.\-_\+]+)\:([a-z0-9\_]+)\](\+|\*|\{[0-9]+(?:,[0-9]+)?\})?~', function($matches) use(&$params) {
$params[] = $matches[2];
return '[' . $matches[1] . ']' . $matches[3];
}, $route));
var_dump(preg_match('~^' . $reg . '$~',$path, $matches));
var_dump($matches);