Daan is sweet to Kelley and delegates himself TestCMS code reflection
[ssproject1617.git] / testcms-final-anon / system / classes / request.php
1 <?php defined('IN_CMS') or die('No direct access allowed.');
2
3 class Request {
4
5 public static function uri_segment($index, $default = false) {
6 $index--;
7 $segments = explode('/', static::uri());
8 return isset($segments[$index]) ? $segments[$index] : $default;
9 }
10
11 public static function uri() {
12 if(isset($_SERVER['PATH_INFO'])) {
13 $uri = $_SERVER['PATH_INFO'];
14 }
15 // try request uri
16 elseif(isset($_SERVER['REQUEST_URI'])) {
17 // make sure we can parse URI
18 if(($uri = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH)) === false) {
19 throw new Exception('Malformed request URI');
20 }
21 }
22 // cannot process request
23 else {
24 throw new Exception('Unable to determine the request URI');
25 }
26
27 // remove base url
28 $base_url = parse_url(Config::get('application.base_url'), PHP_URL_PATH);
29
30 if(strlen($base_url)) {
31 if(strpos($uri, $base_url) === 0) {
32 $uri = substr($uri, strlen($base_url));
33 }
34 }
35
36 // remove index file
37 $index = '/' . Config::get('application.index_page');
38
39 if(strpos($uri, $index) === 0) {
40 $uri = substr($uri, strlen($index));
41 }
42
43 return trim($uri, '/');
44 }
45
46 }