1: <?php
2:
3: 4: 5: 6: 7: 8: 9: 10: 11:
12:
13: namespace Pry\File;
14:
15: 16: 17: 18: 19: 20: 21: 22: 23:
24: class Util
25: {
26:
27: 28: 29: 30: 31: 32: 33: 34:
35: public static function getExtension($file, $dot = false)
36: {
37: if (empty($file))
38: throw new \InvalidArgumentException('Le nom de fichier ne peut être vide');
39:
40: $ext = pathinfo($file, PATHINFO_EXTENSION);
41: if ($dot)
42: $ext = '.' . $ext;
43:
44: return $ext;
45: }
46:
47: 48: 49: 50: 51: 52:
53: public static function getName($file)
54: {
55: if (empty($file))
56: throw new \InvalidArgumentException('Le nom de fichier ne peut être vide');
57: else
58: $name = basename($file, strrchr($file, '.'));
59:
60: return $name;
61: }
62:
63: 64: 65: 66: 67: 68:
69: public static function getNameFromPath($path)
70: {
71: if (empty($path))
72: {
73: throw new \InvalidArgumentException('Le nom de fichier ne peut être vide');
74: }
75: else
76: {
77: if (strrchr($path, '/'))
78: return strtolower(substr(strrchr($path, '/'), 1));
79: else
80: return $path;
81: }
82: }
83:
84: 85: 86: 87: 88: 89: 90:
91: public static function getOctalSize($size)
92: {
93: if (empty($size))
94: return 0;
95: if (is_numeric($size))
96: return $size;
97: if (!is_numeric($size))
98: {
99: $unit = substr($size, -1);
100: if ($unit == 'K')
101: $size *= 1 << 10;
102: elseif ($unit == 'M')
103: $size *= 1 << 20;
104: elseif ($unit == 'G')
105: $size *= 1 << 30;
106: }
107: else
108: throw new \InvalidArgumentException('La taille doit être une chaine');
109: return $size;
110: }
111:
112: 113: 114: 115: 116: 117: 118:
119: public static function getHumanSize($size)
120: {
121: if (empty($size))
122: return 0;
123:
124: if ($size < 0)
125: {
126: $taille = '>2Go';
127: }
128: else
129: {
130: if ($size < 1024)
131: $taille = round($size, 3) . ' o';
132: elseif ($size < 1048576)
133: $taille = round($size / 1024, 3) . ' Ko';
134: elseif ($size < 1073741824)
135: $taille = round($size / 1024 / 1024, 3) . ' Mo';
136: elseif ($size < 1099511627776)
137: $taille = round($size / 1024 / 1024 / 1024, 3) . ' Go';
138: }
139: return $taille;
140: }
141:
142: }
143:
144: ?>