![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/mautic.corals.io/vendor/knplabs/gaufrette/src/Gaufrette/Util/ |
<?php namespace Gaufrette\Util; /** * Path utils. * * @author Antoine Hérault <[email protected]> */ class Path { /** * Normalizes the given path. * * @param string $path * * @return string */ public static function normalize($path) { $path = str_replace('\\', '/', $path); $prefix = static::getAbsolutePrefix($path); $path = substr($path, strlen($prefix)); $parts = array_filter(explode('/', $path), 'strlen'); $tokens = []; foreach ($parts as $part) { switch ($part) { case '.': continue 2; case '..': if (0 !== count($tokens)) { array_pop($tokens); continue 2; } elseif (!empty($prefix)) { continue 2; } default: $tokens[] = $part; } } return $prefix . implode('/', $tokens); } /** * Indicates whether the given path is absolute or not. * * @param string $path A normalized path * * @return bool */ public static function isAbsolute($path) { return '' !== static::getAbsolutePrefix($path); } /** * Returns the absolute prefix of the given path. * * @param string $path A normalized path * * @return string */ public static function getAbsolutePrefix($path) { preg_match('|^(?P<prefix>([a-zA-Z]+:)?//?)|', $path, $matches); if (empty($matches['prefix'])) { return ''; } return strtolower($matches['prefix']); } /** * Wrap native dirname function in order to handle only UNIX-style paths * * @param string $path * * @return string * * @see http://php.net/manual/en/function.dirname.php */ public static function dirname($path) { return str_replace('\\', '/', \dirname($path)); } }