Update from a long time
This commit is contained in:
		
							
								
								
									
										260
									
								
								php/fonction.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										260
									
								
								php/fonction.php
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,260 @@ | ||||
| <?php | ||||
| function formatBytes($size, $precision = 2) | ||||
| { | ||||
|     $base = log($size, 1024); | ||||
|     $suffixes = array('', 'KiB', 'MiB', 'GiB', 'TiB');    | ||||
|  | ||||
|     return round(pow(1024, $base - floor($base)), $precision) .' '. $suffixes[floor($base)]; | ||||
| } | ||||
|  | ||||
| function convertToBytes(string $from): ?int { | ||||
|     $units = ['B', 'KB', 'MB', 'GB', 'TB', 'PB']; | ||||
|     $number = substr($from, 0, -2); | ||||
|     $suffix = strtoupper(substr($from,-2)); | ||||
|  | ||||
|     //B or no suffix | ||||
|     if(is_numeric(substr($suffix, 0, 1))) { | ||||
|         return preg_replace('/[^\d]/', '', $from); | ||||
|     } | ||||
|  | ||||
|     $exponent = array_flip($units)[$suffix] ?? null; | ||||
|     if($exponent === null) { | ||||
|         return null; | ||||
|     } | ||||
|  | ||||
|     return $number * (1024 ** $exponent); | ||||
| } | ||||
|  | ||||
| function folderSize($dir) | ||||
| { | ||||
|     $size = 0; | ||||
|  | ||||
|     foreach (glob(rtrim($dir, '/').'/*', GLOB_NOSORT) as $each) { | ||||
|         $size += is_file($each) ? filesize($each) : folderSize($each); | ||||
|     } | ||||
|  | ||||
|     return $size; | ||||
| } | ||||
|  | ||||
| function mime_type($file) | ||||
| { | ||||
|     $types = array( | ||||
|     'ai'      => 'application/postscript', | ||||
|     'aif'     => 'audio/x-aiff', | ||||
|     'aifc'    => 'audio/x-aiff', | ||||
|     'aiff'    => 'audio/x-aiff', | ||||
|     'asc'     => 'text/plain', | ||||
|     'atom'    => 'application/atom+xml', | ||||
|     'atom'    => 'application/atom+xml', | ||||
|     'au'      => 'audio/basic', | ||||
|     'avi'     => 'video/x-msvideo', | ||||
|     'bcpio'   => 'application/x-bcpio', | ||||
|     'bin'     => 'application/octet-stream', | ||||
|     'bmp'     => 'image/bmp', | ||||
|     'cdf'     => 'application/x-netcdf', | ||||
|     'cgm'     => 'image/cgm', | ||||
|     'class'   => 'application/octet-stream', | ||||
|     'cpio'    => 'application/x-cpio', | ||||
|     'cpt'     => 'application/mac-compactpro', | ||||
|     'csh'     => 'application/x-csh', | ||||
|     'css'     => 'text/css', | ||||
|     'csv'     => 'text/csv', | ||||
|     'dcr'     => 'application/x-director', | ||||
|     'dir'     => 'application/x-director', | ||||
|     'djv'     => 'image/vnd.djvu', | ||||
|     'djvu'    => 'image/vnd.djvu', | ||||
|     'dll'     => 'application/octet-stream', | ||||
|     'dmg'     => 'application/octet-stream', | ||||
|     'dms'     => 'application/octet-stream', | ||||
|     'doc'     => 'application/msword', | ||||
|     'dtd'     => 'application/xml-dtd', | ||||
|     'dvi'     => 'application/x-dvi', | ||||
|     'dxr'     => 'application/x-director', | ||||
|     'eps'     => 'application/postscript', | ||||
|     'etx'     => 'text/x-setext', | ||||
|     'exe'     => 'application/octet-stream', | ||||
|     'ez'      => 'application/andrew-inset', | ||||
|     'gif'     => 'image/gif', | ||||
|     'gram'    => 'application/srgs', | ||||
|     'grxml'   => 'application/srgs+xml', | ||||
|     'gtar'    => 'application/x-gtar', | ||||
|     'hdf'     => 'application/x-hdf', | ||||
|     'hqx'     => 'application/mac-binhex40', | ||||
|     'htm'     => 'text/html', | ||||
|     'html'    => 'text/html', | ||||
|     'ice'     => 'x-conference/x-cooltalk', | ||||
|     'ico'     => 'image/x-icon', | ||||
|     'ics'     => 'text/calendar', | ||||
|     'ief'     => 'image/ief', | ||||
|     'ifb'     => 'text/calendar', | ||||
|     'iges'    => 'model/iges', | ||||
|     'igs'     => 'model/iges', | ||||
|     'jpe'     => 'image/jpeg', | ||||
|     'jpeg'    => 'image/jpeg', | ||||
|     'jpg'     => 'image/jpeg', | ||||
|     'js'      => 'application/x-javascript', | ||||
|     'json'    => 'application/json', | ||||
|     'kar'     => 'audio/midi', | ||||
|     'latex'   => 'application/x-latex', | ||||
|     'lha'     => 'application/octet-stream', | ||||
|     'lzh'     => 'application/octet-stream', | ||||
|     'm3u'     => 'audio/x-mpegurl', | ||||
|     'man'     => 'application/x-troff-man', | ||||
|     'mathml'  => 'application/mathml+xml', | ||||
|     'me'      => 'application/x-troff-me', | ||||
|     'mesh'    => 'model/mesh', | ||||
|     'mid'     => 'audio/midi', | ||||
|     'midi'    => 'audio/midi', | ||||
|     'mif'     => 'application/vnd.mif', | ||||
|     'mov'     => 'video/quicktime', | ||||
|     'movie'   => 'video/x-sgi-movie', | ||||
|     'mp2'     => 'audio/mpeg', | ||||
|     'mp3'     => 'audio/mpeg', | ||||
|     'mpe'     => 'video/mpeg', | ||||
|     'mpeg'    => 'video/mpeg', | ||||
|     'mpg'     => 'video/mpeg', | ||||
|     'mpga'    => 'audio/mpeg', | ||||
|     'ms'      => 'application/x-troff-ms', | ||||
|     'msh'     => 'model/mesh', | ||||
|     'mxu'     => 'video/vnd.mpegurl', | ||||
|     'nc'      => 'application/x-netcdf', | ||||
|     'oda'     => 'application/oda', | ||||
|     'ogg'     => 'application/ogg', | ||||
|     'pbm'     => 'image/x-portable-bitmap', | ||||
|     'pdb'     => 'chemical/x-pdb', | ||||
|     'pdf'     => 'application/pdf', | ||||
|     'pgm'     => 'image/x-portable-graymap', | ||||
|     'pgn'     => 'application/x-chess-pgn', | ||||
|     'png'     => 'image/png', | ||||
|     'pnm'     => 'image/x-portable-anymap', | ||||
|     'ppm'     => 'image/x-portable-pixmap', | ||||
|     'ppt'     => 'application/vnd.ms-powerpoint', | ||||
|     'ps'      => 'application/postscript', | ||||
|     'qt'      => 'video/quicktime', | ||||
|     'ra'      => 'audio/x-pn-realaudio', | ||||
|     'ram'     => 'audio/x-pn-realaudio', | ||||
|     'ras'     => 'image/x-cmu-raster', | ||||
|     'rdf'     => 'application/rdf+xml', | ||||
|     'rgb'     => 'image/x-rgb', | ||||
|     'rm'      => 'application/vnd.rn-realmedia', | ||||
|     'roff'    => 'application/x-troff', | ||||
|     'rss'     => 'application/rss+xml', | ||||
|     'rtf'     => 'text/rtf', | ||||
|     'rtx'     => 'text/richtext', | ||||
|     'sgm'     => 'text/sgml', | ||||
|     'sgml'    => 'text/sgml', | ||||
|     'sh'      => 'application/x-sh', | ||||
|     'shar'    => 'application/x-shar', | ||||
|     'silo'    => 'model/mesh', | ||||
|     'sit'     => 'application/x-stuffit', | ||||
|     'skd'     => 'application/x-koan', | ||||
|     'skm'     => 'application/x-koan', | ||||
|     'skp'     => 'application/x-koan', | ||||
|     'skt'     => 'application/x-koan', | ||||
|     'smi'     => 'application/smil', | ||||
|     'smil'    => 'application/smil', | ||||
|     'snd'     => 'audio/basic', | ||||
|     'so'      => 'application/octet-stream', | ||||
|     'spl'     => 'application/x-futuresplash', | ||||
|     'src'     => 'application/x-wais-source', | ||||
|     'sv4cpio' => 'application/x-sv4cpio', | ||||
|     'sv4crc'  => 'application/x-sv4crc', | ||||
|     'svg'     => 'image/svg+xml', | ||||
|     'svgz'    => 'image/svg+xml', | ||||
|     'swf'     => 'application/x-shockwave-flash', | ||||
|     't'       => 'application/x-troff', | ||||
|     'tar'     => 'application/x-tar', | ||||
|     'tcl'     => 'application/x-tcl', | ||||
|     'tex'     => 'application/x-tex', | ||||
|     'texi'    => 'application/x-texinfo', | ||||
|     'texinfo' => 'application/x-texinfo', | ||||
|     'tif'     => 'image/tiff', | ||||
|     'tiff'    => 'image/tiff', | ||||
|     'tr'      => 'application/x-troff', | ||||
|     'tsv'     => 'text/tab-separated-values', | ||||
|     'txt'     => 'text/plain', | ||||
|     'ustar'   => 'application/x-ustar', | ||||
|     'vcd'     => 'application/x-cdlink', | ||||
|     'vrml'    => 'model/vrml', | ||||
|     'vxml'    => 'application/voicexml+xml', | ||||
|     'wav'     => 'audio/x-wav', | ||||
|     'wbmp'    => 'image/vnd.wap.wbmp', | ||||
|     'wbxml'   => 'application/vnd.wap.wbxml', | ||||
|     'wml'     => 'text/vnd.wap.wml', | ||||
|     'wmlc'    => 'application/vnd.wap.wmlc', | ||||
|     'wmls'    => 'text/vnd.wap.wmlscript', | ||||
|     'wmlsc'   => 'application/vnd.wap.wmlscriptc', | ||||
|     'wrl'     => 'model/vrml', | ||||
|     'xbm'     => 'image/x-xbitmap', | ||||
|     'xht'     => 'application/xhtml+xml', | ||||
|     'xhtml'   => 'application/xhtml+xml', | ||||
|     'xls'     => 'application/vnd.ms-excel', | ||||
|     'xml'     => 'application/xml', | ||||
|     'xpm'     => 'image/x-xpixmap', | ||||
|     'xsl'     => 'application/xml', | ||||
|     'xslt'    => 'application/xslt+xml', | ||||
|     'xul'     => 'application/vnd.mozilla.xul+xml', | ||||
|     'xwd'     => 'image/x-xwindowdump', | ||||
|     'xyz'     => 'chemical/x-xyz', | ||||
|     'zip'     => 'application/zip' | ||||
|     ); | ||||
|  | ||||
|     $mime = mime_content_type($file); | ||||
|  | ||||
|     $ext = pathinfo($file, PATHINFO_EXTENSION); | ||||
|  | ||||
|     if($mime == "application/octet-stream" && array_key_exists($ext, $types)) | ||||
|         return $types[$ext]; | ||||
|     else | ||||
|         return $mime; | ||||
|  | ||||
| } | ||||
|  | ||||
| function font_type($file) | ||||
| { | ||||
|     $mime = mime_type($file); | ||||
|  | ||||
|     $type = explode('/', $mime); | ||||
|  | ||||
|     $archive = ['x-tar', 'x-gzip', 'x-bzip', 'x-bzip2', 'zip', 'x-7z-compressed', 'x-rar-compressed', 'vnd.debian.binary-package', 'java-archive']; | ||||
|  | ||||
|     $word = ['msword', 'vnd.openxmlformats-officedocument.wordprocessingml.document', 'vnd.oasis.opendocument.text']; | ||||
|  | ||||
|     $excel = ['vnd.ms-excel', 'vnd.openxmlformats-officedocument.spreadsheetml.sheet', 'vnd.oasis.opendocument.spreadsheet']; | ||||
|  | ||||
|     $powerpoint = ['vnd.ms-powerpoint', 'vnd.openxmlformats-officedocument.presentationml.presentation', 'vnd.oasis.opendocument.presentation']; | ||||
|  | ||||
|     $code = ['html', 'x-shellscript']; | ||||
|  | ||||
|     switch ($type[0]) { | ||||
|         case "image": | ||||
|             return "file-image"; | ||||
|             break; | ||||
|         case "audio": | ||||
|             return "file-audio"; | ||||
|             break; | ||||
|         case "video": | ||||
|             return "file-video"; | ||||
|             break; | ||||
|         case "application": | ||||
|             if(in_array($type[1], $archive)) | ||||
|                 return "file-archive"; | ||||
|             if(in_array($type[1], $word)) | ||||
|                 return "file-word"; | ||||
|             if(in_array($type[1], $excel)) | ||||
|                 return "file-excel"; | ||||
|             if(in_array($type[1], $powerpoint)) | ||||
|                 return "file-powerpoint"; | ||||
|             if($type[1] == "pdf") | ||||
|                 return "file-pdf"; | ||||
|             return "file"; | ||||
|         case "text": | ||||
|             if(in_array($type[1], $code)) | ||||
|                 return "file-code"; | ||||
|             return "file-alt"; | ||||
|         default: | ||||
|             return "file"; | ||||
|     } | ||||
| } | ||||
|  | ||||
| ?> | ||||
		Reference in New Issue
	
	Block a user
	 root
					root