25) break; } return (string) realpath($target); } /** * Breaks down a path into an an array like: * root, dir, base, ext, and name. * * @param string $path The path to parse. * @return array An associative array with path information. */ public static function parse($path) { $info = pathinfo($path); return [ 'dir' => isset($info['dirname']) ? $info['dirname'] : null, 'root' => isset($info['dirname']) ? $info['dirname'] : null, 'base' => isset($info['basename']) ? $info['basename'] : null, 'name' => isset($info['filename']) ? $info['filename'] : null, 'ext' => isset($info['extension']) ? '.' . $info['extension'] : null, ]; } }