fork(1) download
  1. <?php
  2.  
  3. $request_uri = $_SERVER["REQUEST_URI"];
  4.  
  5. $arr_pattern_uri = array(
  6. "pattern" => "#^/$#i",
  7. "controller" => "Home",
  8. "action" => "index",
  9. ),
  10.  
  11.  
  12. "pattern" => "#^/login/[?]{0,1}[^/]*$#i",
  13. "controller" => "Home",
  14. "action" => "login",
  15. ),
  16.  
  17. "pattern" => "#^/posts/[?]{0,1}[^/]*$#i",
  18. "controller" => "Home",
  19. "action" => "posts",
  20. ),
  21.  
  22. "pattern" => "#^/posts/([0-9]+?)[-](.*?)/[?]{0,1}[^/]*$#i",
  23. "controller" => "Home",
  24. "action" => "post",
  25. ),
  26.  
  27.  
  28.  
  29. "pattern" => "#^/form/(.*?)/[?]{0,1}[^/]*$#i",
  30. "controller" => "Form",
  31. "action" => "*",
  32. ),
  33.  
  34. );
  35.  
  36.  
  37. // Если $t = 0 - ни один из роутов не обнаружен
  38. $t = 0;
  39. $request_params = "";
  40. $pattern_uri = "";
  41. foreach ($arr_pattern_uri as $pattern)
  42. {
  43. if (preg_match($pattern["pattern"], $request_uri, $request_params))
  44. {
  45.  
  46. $pattern_uri = $pattern;
  47. $t = 1;
  48. break;
  49. }
  50. }
  51.  
  52. if (class_exists($pattern_uri["controller"]) )
  53. {
  54. $obj = new $pattern_uri["controller"] ();
  55. $str_method = "";
  56. if ($pattern_uri["action"] == "*")
  57. {
  58.  
  59.  
  60.  
  61. $str_method = $request_params[1];
  62. if (!method_exists($obj , $str_method))
  63. {
  64. $str_method = "";
  65. }
  66.  
  67. }
  68. else
  69. {
  70.  
  71. $str_method = $pattern_uri["action"];
  72. if (!method_exists($obj , $str_method))
  73. {
  74. $str_method = "";
  75. }
  76. }
  77.  
  78. if (strlen($str_method) > 0)
  79. {
  80.  
  81.  
  82. $obj->request_params = $request_params;
  83. $obj->$str_method();
  84.  
  85.  
  86. }
  87. else
  88. {
  89. //Redirect();
  90. }
  91.  
  92. }
Success #stdin #stdout #stderr 0.01s 52488KB
stdin
Standard input is empty
stdout
Standard output is empty
stderr
PHP Notice:  Undefined index: REQUEST_URI in /home/v5n3Ud/prog.php on line 3
PHP Warning:  Illegal string offset 'controller' in /home/v5n3Ud/prog.php on line 57
PHP Notice:  Uninitialized string offset: 0 in /home/v5n3Ud/prog.php on line 57