- preg_replace_callback: documentation ( source)
<?php
$params = array('username' => "l33t");
$route = "/user/[a-z0-9:username]";
echo preg_replace_callback('~\[([a-z0-9\.\-_\+]+)\:([a-z0-9\_]+)\]~', function($matches) use(&$params) {
if(isset($params[$matches[2]])){
return $params[$matches[2]];
}else{
return 'null';
}
}, $route);