X-Git-Url: https://git.cweiske.de/phorkie.git/blobdiff_plain/027c801a4dc51db673bcbfcfbd396845f244e357..43b23197ffc3e1d08a1e08b09dbb31f06692d7ff:/src/phorkie/Tools.php diff --git a/src/phorkie/Tools.php b/src/phorkie/Tools.php index e4aab63..7c9c46e 100644 --- a/src/phorkie/Tools.php +++ b/src/phorkie/Tools.php @@ -4,8 +4,18 @@ namespace phorkie; class Tools { + /** + * Delete an entire directory structure + * + * @param string $path Path to delete + * + * @return bool + */ public static function recursiveDelete($path) { + if (!file_exists($path)) { + return true; + } if (!is_dir($path) || is_link($path)) { return unlink($path); } @@ -28,14 +38,14 @@ class Tools * * @return string Full URL */ - public static function fullUrl($path) + public static function fullUrl($path = '') { if (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS']) { $prot = 'https'; } else { $prot = 'http'; } - return $prot . '://' . $_SERVER['HTTP_HOST'] . $path; + return $prot . '://' . $_SERVER['HTTP_HOST'] . $GLOBALS['phorkie']['cfg']['baseurl'] . $path; } /** @@ -60,6 +70,31 @@ class Tools return $file; } -} + public static function detectBaseUrl() + { + if (!isset($_SERVER['REQUEST_URI']) + || !isset($_SERVER['SCRIPT_NAME']) + ) { + return '/'; + } + + $scriptName = $_SERVER['SCRIPT_NAME']; + $requestUri = $_SERVER['REQUEST_URI']; + if (substr($scriptName, -4) != '.php') { + //a phar + return $scriptName . '/'; + } + + if (substr($requestUri, -4) != '.php') { + $requestUri .= '.php'; + } + $snl = strlen($scriptName); + if (substr($requestUri, -$snl) == $scriptName) { + return substr($requestUri, 0, -$snl) . '/'; + } + + return '/'; + } +} ?>