<?php // dangerously simple PHP regular expression URL router // requires a mod_rewrite like "RewriteRule . /index.php [L]" function get($url, $callback) { $matches = array(); if (preg_match('~' . $url . '~', $_SERVER['REQUEST_URI'], $matches)) { echo call_user_func_array($callback, $matches); die(); } } get('foo', function($url) { return 'you got foo'; }); get('bar([\d])', function($url, $digit) { return 'bar number ' . $digit; }); get('.*', function() { return 'catch all. try /foo or /bar[0-9]'; });