note 75402 added to function.readdir

From: Date: Mon, 28 May 2007 01:42:04 +0000
Subject: note 75402 added to function.readdir
Groups: php.notes 
Request: Send a blank email to php-notes+get-126974@lists.php.net to get a copy of this message
code: <?php function permission($filename) { $perms = fileperms($filename); if (($perms & 0xC000) == 0xC000) { $info = 's'; } elseif (($perms & 0xA000) == 0xA000) { $info = 'l'; } elseif (($perms & 0x8000) == 0x8000) { $info = '-'; } elseif (($perms & 0x6000) == 0x6000) { $info = 'b'; } elseif (($perms & 0x4000) == 0x4000) { $info = 'd'; } elseif (($perms & 0x2000) == 0x2000) { $info = 'c'; } elseif (($perms & 0x1000) == 0x1000) { $info = 'p'; } else { $info = 'u'; } // владелец $info .= (($perms & 0x0100) ? 'r' : '-'); $info .= (($perms & 0x0080) ? 'w' : '-'); $info .= (($perms & 0x0040) ? (($perms & 0x0800) ? 's' : 'x' ) : (($perms & 0x0800) ? 'S' : '-')); // группа $info .= (($perms & 0x0020) ? 'r' : '-'); $info .= (($perms & 0x0010) ? 'w' : '-'); $info .= (($perms & 0x0008) ? (($perms & 0x0400) ? 's' : 'x' ) : (($perms & 0x0400) ? 'S' : '-')); // все $info .= (($perms & 0x0004) ? 'r' : '-'); $info .= (($perms & 0x0002) ? 'w' : '-'); $info .= (($perms & 0x0001) ? (($perms & 0x0200) ? 't' : 'x' ) : (($perms & 0x0200) ? 'T' : '-')); return $info; } function dir_list($dir) { if ($dir[strlen($dir)-1] != '/') $dir .= '/'; if (!is_dir($dir)) return array(); $dir_handle = opendir($dir); $dir_objects = array(); while ($object = readdir($dir_handle)) if (!in_array($object, array('.','..'))) { $filename = $dir . $object; $file_object = array( 'name' => $object, 'size' => filesize($filename), 'perm' => permission($filename), 'type' => filetype($filename), 'time' => date("d F Y H:i:s", filemtime($filename)) ); $dir_objects[] = $file_object; } return $dir_objects; } ?> call: <?php print_r(dir_list('/path/to/you/dir/')); ?> output sample: Array ( [0] => Array ( [name] => api [size] => 0 [perm] => drwxrwxrwx [type] => dir [time] => 28 May 2007 01:55:02 ) [1] => Array ( [name] => classes [size] => 0 [perm] => drwxrwxrwx [type] => dir [time] => 26 May 2007 00:56:44 ) [2] => Array ( [name] => config.inc.php [size] => 143 [perm] => -rw-rw-rw- [type] => file [time] => 26 May 2007 13:13:19 ) [3] => Array ( [name] => index.php [size] => 131 [perm] => -rw-rw-rw- [type] => file [time] => 26 May 2007 22:15:18 ) [4] => Array ( [name] => modules [size] => 0 [perm] => drwxrwxrwx [type] => dir [time] => 28 May 2007 00:47:40 ) [5] => Array ( [name] => temp [size] => 0 [perm] => drwxrwxrwx [type] => dir [time] => 28 May 2007 04:49:33 ) ) ---- Server IP: 195.54.192.44 Probable Submitter: 85.113.135.162 ---- Manual Page -- http://www.php.net/manual/en/function.readdir.php Edit -- https://master.php.net/note/edit/75402 Del: integrated -- https://master.php.net/note/delete/75402/integrated Del: useless -- https://master.php.net/note/delete/75402/useless Del: bad code -- https://master.php.net/note/delete/75402/bad+code Del: spam -- https://master.php.net/note/delete/75402/spam Del: non-english -- https://master.php.net/note/delete/75402/non-english Del: in docs -- https://master.php.net/note/delete/75402/in+docs Del: other reasons-- https://master.php.net/note/delete/75402 Reject -- https://master.php.net/note/reject/75402 Search -- https://master.php.net/manage/user-notes.php

« previous php.notes (#126974) next »