stuppid_bot

Untitled

Dec 25th, 2013
184
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.45 KB | None | 0 0
  1. <?php
  2.  
  3. require_once 'common.inc';
  4. require_once "lang/{$cfg['lang']}/main.inc";
  5. $root = dirname($_SERVER['SCRIPT_NAME']);
  6. if ($root == '/') {
  7.     $root = '';
  8. }
  9. // константа содержит путь от корня до обработчика
  10. define('ROOT', $root);
  11. define('TEMPLATE_DIR', 'templates/main');
  12. // берем только путь из $_SERVER['REQUEST_URI']
  13. $path = preg_replace('/(\?.*)?/', '', $_SERVER['REQUEST_URI']);
  14. // убираем повторы слешей
  15. $path = preg_replace('~/{2,}~', '/', $path);
  16. // декодируем путь
  17. $path = urldecode(substr($path, strlen(ROOT)));
  18. $routes = array();
  19. $routes['/test_ajax'] = 'test_ajax';
  20. $cfg['default_page'] = 'page_404';
  21.  
  22. function test_ajax() {
  23.     var_dump(IS_AJAX);
  24. }
  25.  
  26. function page_404() {
  27.     header($_SERVER['SERVER_PROTOCOL'] . ' 404 Page Not Found');
  28.     $title = t('PAGE_404_TITLE');
  29.     include TEMPLATE_DIR . '/header.inc';
  30.     echo '<h1>' . htmlspecialchars($title) . '</h1>';
  31.     echo t('PAGE_404_TEXT');
  32.     include TEMPLATE_DIR . '/footer.inc';
  33. }
  34.  
  35. function run_route($path) {
  36.     global $cfg, $routes;
  37.     foreach ($routes as $k => $v) {
  38.         if (@preg_match($k, '')) {
  39.             if (preg_match($k, $path, $m)) {
  40.                 return call_user_func_array($v, array_slice($m, 1));
  41.             }
  42.         }
  43.         else if ($path == $k) {
  44.             return call_user_func($v);
  45.         }
  46.     }
  47.     call_user_func($cfg['default_page']);
  48. }
Advertisement
Add Comment
Please, Sign In to add comment