public function normalizeAndTruncatePath($path, $maxLength) {
        $truncated = 1;
        $path_parts = explode('/', str_replace('\\', '/', $path));
        $total_parts = count($path_parts);

        while (strlen($path) > $maxLength) {
            if (($truncated + 1) === $total_parts) break;
            $part_to_modify = $total_parts - 1 - $truncated;
            $chars_to_truncate = min(strlen($path_parts[$part_to_modify]) - 1, strlen($path) - $maxLength);
            if ((strlen($path) - $maxLength + 2) < strlen($path_parts[$part_to_modify]))
                $chars_to_truncate += 2;

            $path_parts[$part_to_modify] = substr($path_parts[$part_to_modify], 0, -$chars_to_truncate).'..';
            $path = implode('/', $path_parts);
            $truncated++;
        }

        return $path;
    }
public function normalizeAndTruncatePath($path, $maxLength) {
        $truncated = 1;
        $path_parts = explode('/', str_replace('\\', '/', $path));
        $total_parts = count($path_parts);

        while (strlen($path) > $maxLength) {
            if (($truncated + 1) === $total_parts) break;
            $part_to_modify = $total_parts - 1 - $truncated;
            $chars_to_truncate = min(strlen($path_parts[$part_to_modify]) - 1, strlen($path) - $maxLength);
            if ((strlen($path) - $maxLength + 2) < strlen($path_parts[$part_to_modify]))
                $chars_to_truncate += 2;

            $path_parts[$part_to_modify] = substr($path_parts[$part_to_modify], 0, -$chars_to_truncate).'..';
            $path = implode('/', $path_parts);
            $truncated++;
        }

        return $path;
    }
public function normalizeAndTruncatePath ( $ path , $ maxLength ) { $ truncated = 1 ; $ path_parts = explode ( '/' , str_replace ( '\\' , '/' , $ path ) ) ; $ total_parts = count ( $ path_parts ) ; while ( strlen ( $ path ) > $ maxLength ) { if ( ( $ truncated + 1 ) === $ total_parts ) break ; $ part_to_modify = $ total_parts - 1 - $ truncated ; $ chars_to_truncate = min ( strlen ( $ path_parts [ $ part_to_modify ] ) - 1 , strlen ( $ path ) - $ maxLength ) ; if ( ( strlen ( $ path ) - $ maxLength + 2 ) < strlen ( $ path_parts [ $ part_to_modify ] ) ) $ chars_to_truncate += 2 ; $ path_parts [ $ part_to_modify ] = substr ( $ path_parts [ $ part_to_modify ] , 0 , - $ chars_to_truncate ) . '..' ; $ path = implode ( '/' , $ path_parts ) ; $ truncated ++ ; } return $ path ; }
Simplifies path to fit in specific width
@param string $path
@param integer $maxLength
@return string
Simplifies path to fit in specific width