/** * Begin to parse incoming URI * ------------------------------------------------------ * @param string $url */ private static function urlToPath($url) { self::$requestObject = new Request(); # Clean Url to Part before ? Query and After $cleanedUri = strstr($url, '?', true); $cleanedQuery = null; if (!$cleanedUri) { $cleanedUri = $url; } else { $query = ltrim(strstr($url, '?'), '?'); parse_str($query, $cleanedQuery); } # Explode Path $incomeUri = explode('/', $cleanedUri); $incomeLen = count($incomeUri); $resultRoute = array(); $pathLast = null; $k = 0; for ($i = 0; $i < $incomeLen; $i++) { $curPiece = $incomeUri[$i]; if (strlen($curPiece) > 0) { $qstr = explode('?', $curPiece); $resultRoute[$qstr[0]] = 1; $pathLast = $qstr[0]; $k++; } } if ($k == 0) { $resultRoute["/"] = 1; } self::$requestObject->__setPath($cleanedUri); self::$requestObject->__setPathLastElement($pathLast); self::$routerQuery = $cleanedQuery; self::$routerPath = $resultRoute; self::$routerStarted = true; }