Advertisement
villers

rooter

Jan 9th, 2014
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.00 KB | None | 0 0
  1. <?php
  2.  
  3. class Router
  4. {
  5.     public static $router = null, $param = array(), $baseUrl;
  6.  
  7.     public static function run()
  8.     {
  9.         if (self::$router == null && count(self::$param) == 0)  
  10.         {
  11.             /* Get base Url */
  12.             /* LE PROBLEME EST ICI
  13.              * http://127.0.0.1/mvc/        (OK baseurl = /mvc/)
  14.              * http://127.0.0.1/testevdfg/mvc/  (FAUT baseurl = /testevdfg/) au lieu de /testevdfg/mvc/
  15.             */
  16.             preg_match("/\/(.*?)\//i", $_SERVER["REQUEST_URI"], self::$baseUrl);
  17.             self::$baseUrl = self::$baseUrl[1];
  18.  
  19.             if (isset($_SERVER["PATH_INFO"]))
  20.             {
  21.                 $result = explode("/", substr(strtolower($_SERVER["PATH_INFO"]), 1));
  22.                 /* Delete empty result */
  23.                 for ($i = 0; $i < count($result) && $i < MAX_PARAMETERS+2;)
  24.                     if (empty($result[$i]))
  25.                     {
  26.                         unset($result[$i]);
  27.                         $result = array_values($result);
  28.                     }else
  29.                         $i++;
  30.  
  31.                 if (!isset($result[0]))
  32.                     $result[0] = DEFAULT_CONTROLLER;
  33.                 else
  34.                     if (!file_exists(PATH_CONTROLLER.$result[0] .".class.php"))
  35.                     {
  36.                         $result[0] = "error";
  37.                         $result[1] = "code_404";
  38.                     }
  39.             }
  40.  
  41.             /* Add Controller and Action in Router Array */
  42.             self::$router = array(
  43.                 "controller" => isset($result[0]) ? $result[0] : DEFAULT_CONTROLLER,
  44.                 "action" => isset($result[1]) ? $result[1] : DEFAULT_ACTION,
  45.             );
  46.  
  47.             /* Add Params to Router Array */
  48.             if (isset($result) && count($result) > 2)
  49.                 for ($i = 2; $i < count($result) && $i-2 < MAX_PARAMETERS; $i++)
  50.                     if (!empty($result[$i]))
  51.                         array_push(self::$param, $result[$i]);
  52.         }
  53.     }
  54. }
  55. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement