Skip to content

Instantly share code, notes, and snippets.

@spout
Forked from dave1010/php-regex-router.php
Created February 9, 2014 13:24
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save spout/8899030 to your computer and use it in GitHub Desktop.
Save spout/8899030 to your computer and use it in GitHub Desktop.
<?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]';
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment