note 70949 added to function.readdir

From: Date: Mon, 06 Nov 2006 04:50:00 +0000
Subject: note 70949 added to function.readdir
Groups: php.notes 
Request: Send a blank email to php-notes+get-119415@lists.php.net to get a copy of this message
There's a handy function to discern the date of modification automatically. This will save the effort of renaming all the files, and of parsing file names. Example: <?php //Adapted from code posted by "suit (at) rebell (dot) at //Control directory access $allowed_directories = array("/users/username/images/", "http://www.example.com/photos"); $default_directory = $allowed_directories [0]; $allow_subdir = 'true'; //List allowed filename extensions $extensions = array("jpg", "png", "jpeg", "gif"); //Set a default directory, or get the directory from $_POST data if($_POST[browse_directory]){ $browse_directory = $_POST[browse_directory]; } else { $browse_directory = $default_directory; } if (is_dir($browse_directory)) { if ($dh = opendir($browse_directory)) { while (($file = readdir($dh)) !== false) { $filename = $file; $filetype = filetype($browse_directory . $file); $filedate = filemtime($browse_directory . $file); //Finds file's last date of modification if ($filename == ".." OR $filename == ".") echo ""; else { if ($filetype == "file") { foreach($extensions as $ext) if (strtolower(strstr($filename, '.')) == ".$ext") //Checks that the extension is on the list $array_file[$filename] = $filedate; } elseif ($filetype == "dir") $array_dir[] = $filename; } } closedir($dh); } } echo "<table border=\"1\">\n"; arsort($array_file); foreach ($array_file as $filename => $filedate) { $filedate = date("dS M Y", $filedate); $subdir_n = "$subdir$filename/"; echo "<tr>\n"; echo "<td>file</td>\n"; echo "<td>$filename</td>\n"; echo "<td>$filedate</td>\n"; echo "</tr>\n"; } echo "</table>\n"; sort($array_dir); $dir_menu["directory"] = $allowed_directories; if ($allow_subdir == 'true') { $dir_menu["sub-directory"] = $array_dir; } foreach($dir_menu as $menu_label => $menu_items) { echo "<H4>Browse $menu_label:</H4>\n<p>"; foreach ($menu_items as $item) { if($menu_label == "directory") { $new_directory = $item; } else { $new_directory = "$browse_directory$item/"; } echo "\n</FORM>\n<FORM action=\"browse.php\" method=\"post\">\n"; echo "<INPUT type=\"hidden\" name=\"browse_directory\"value=\"$new_directory\">\n"; echo "<BUTTON name=\"submit\" value=\"submit\" type=\"submit\">$item</BUTTON>\n"; } } ?> ---- Server IP: 66.163.161.117 Probable Submitter: 70.230.193.30 ---- Manual Page -- http://www.php.net/manual/en/function.readdir.php Edit -- https://master.php.net/note/edit/70949 Del: integrated -- https://master.php.net/note/delete/70949/integrated Del: useless -- https://master.php.net/note/delete/70949/useless Del: bad code -- https://master.php.net/note/delete/70949/bad+code Del: spam -- https://master.php.net/note/delete/70949/spam Del: non-english -- https://master.php.net/note/delete/70949/non-english Del: in docs -- https://master.php.net/note/delete/70949/in+docs Del: other reasons-- https://master.php.net/note/delete/70949 Reject -- https://master.php.net/note/reject/70949 Search -- https://master.php.net/manage/user-notes.php

« previous php.notes (#119415) next »