/** * Return fileinformation as array * @param string $file * @return array */ public static function getInfo($file) { $file = str_replace('\\', '/', $file); $info = @pathinfo($file); $info['path'] = $file; $info['absolute'] = @str_replace('\\', '/', @realpath($file)); $info['width'] = @getimagesize($file)[0]; $info['height'] = @getimagesize($file)[1]; $info['created'] = @filectime($file); $info['modified'] = @filemtime($file); $info['size'] = @filesize($file); $info['type'] = @filetype($file); $info['owner'] = @fileowner($file); $info['group'] = @filegroup($file); $info['perms'] = @decoct(@fileperms($file)); $info['writable'] = @is_writable($file); $info['readable'] = @is_readable($file); $info['exists'] = @file_exists($file); $info['isfile'] = @is_file($file); $info['isdir'] = @is_dir($file); $info['islink'] = @is_link($file); $info['mimetype'] = NULL; $info['encoding'] = NULL; if ($info['exists']) { if (class_exists('finfo')) { $finfo = new \finfo(); $finfo->set_flags(FILEINFO_MIME_TYPE); $info['mimetype'] = $finfo->file($info['path']); $finfo->set_flags(FILEINFO_MIME_ENCODING); if ($info['mimetype'] != 'application/octet-stream') { $info['encoding'] = $finfo->file($info['path']); } } } return (object) $info; }
<?php /* Prototype : bool finfo_set_flags(resource finfo, int options) * Description: Set libmagic configuration options. * Source code: ext/fileinfo/fileinfo.c * Alias to functions: */ $magicFile = dirname(__FILE__) . DIRECTORY_SEPARATOR . 'magic'; $finfo = finfo_open(FILEINFO_MIME, $magicFile); echo "*** Testing finfo_set_flags() : basic functionality ***\n"; var_dump(finfo_set_flags($finfo, FILEINFO_NONE)); var_dump(finfo_set_flags($finfo, FILEINFO_SYMLINK)); var_dump(finfo_set_flags()); finfo_close($finfo); // OO way $finfo = new finfo(FILEINFO_NONE, $magicFile); var_dump($finfo->set_flags(FILEINFO_MIME)); var_dump($finfo->set_flags()); ?> ===DONE===