JEB Posted November 15, 2006 Share Posted November 15, 2006 Can I start by saying I know absolutly nothing about PHP, but I'm starting to learn, so please be gentle with me. All I want to do is produce a simple .php file that lists in date order all of the files in my server. I've got this code that runs fine on a test server, but on the server I want to run it in anger on is hosted, and the bin directory is set to chmod 111, and I can't change it. When my code gets to that dir it falls over.Can someone help show me what I have to do to add so something to my code to skip certain directories I can list, such as bin or lib directories. Thank you.<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <style type="text/css"> body, td { font-size: 8pt; font-family: sans-serif; } a:link, a:hover, a:active, a:visited { font-size: 8pt; color: #0000FF; } </style> </head> <body> <?php $dir = "."; $directories = array(); $files = array(); function recursedir($rootdir){ $directories = array(); $files = array(); $dir = (substr($rootdir, -1) == '/') ? substr($rootdir, 0, -1) : $rootdir; if(is_dir($dir)){ if($handle = opendir($dir)){ while(false !== ($file = readdir($handle))){ if($file != "." && $file != ".."){ $filename = $dir.'/'.$file; if(is_dir($filename)){ $folder = $filename; $files = array_merge($files, recursedir($filename)); //echo $folder."<br />"; } else { $files[$filename] = filemtime($filename); } } } closedir($handle); } else { die('Could not open directory.'); } } else { die('Invalid directory.'); } return $files; } $files = recursedir("."); if($_GET['sort'] == 'alpha'){ if($_GET['mode'] == 'desc'){ krsort($files); $highlight = 'alpha_desc'; } else { ksort($files); $highlight = 'alpha_asc'; } } else { if($_GET['mode'] == 'asc'){ asort($files, SORT_NUMERIC); $highlight = 'date_asc'; } else { arsort($files, SORT_NUMERIC); $highlight = 'date_desc'; } } $sort_alpha_asc = ($highlight == 'alpha_asc') ? '<b>Asc</b>' : '<a href="?sort=alpha&mode=asc">Asc</a>'; $sort_alpha_desc = ($highlight == 'alpha_desc') ? '<b>Desc</b>' : '<a href="?sort=alpha&mode=desc">Desc</a>'; $sort_date_asc = ($highlight == 'date_asc') ? '<b>Asc</b>' : '<a href="?sort=date&mode=asc">Asc</a>'; $sort_date_desc = ($highlight == 'date_desc') ? '<b>Desc</b>' : '<a href="?sort=date&mode=desc">Desc</a>'; echo "Sort by: Date- $sort_date_asc | $sort_date_desc; Name- $sort_alpha_asc | $sort_alpha_desc<br />\n<br />\n"; echo "<table border=\"0\">\n<tr><td><u>File</u></td><td width=\"25\"></td><td><u>Size</u></td><td width=\"25\"></td><td><u>Last Modified</u></td></tr>\n"; foreach($files as $file => $timestamp){ echo "<tr><td><a href=\"$dir/$file\">$file</a></td><td></td><td>"; $filesize = filesize($file); if($filesize >= 1048576){ echo round($filesize / 1048576, 1).'MB'; } else { echo round($filesize / 1024, 1).'kb'; } echo '</td><td></td><td>'.date('d M Y H:i:s', $timestamp)."</td></tr>\n"; } echo '</table>'; ?> </body></html> Link to comment https://forums.phpfreaks.com/topic/27362-list-all-files-on-my-server/ Share on other sites More sharing options...
craygo Posted November 15, 2006 Share Posted November 15, 2006 you can have it check the chmod first then run if chmod is not 111look at the manual.[url=http://us3.php.net/manual/en/function.fileperms.php]http://us3.php.net/manual/en/function.fileperms.php[/url]Ray Link to comment https://forums.phpfreaks.com/topic/27362-list-all-files-on-my-server/#findComment-125167 Share on other sites More sharing options...
JEB Posted November 15, 2006 Author Share Posted November 15, 2006 Thanks for that, but I said be gentle :) The words Double and Dutch spring to mind ???. I'll have a hunt around and see if I can find some examples of it working in something as a pointer. Thanks for responding. Link to comment https://forums.phpfreaks.com/topic/27362-list-all-files-on-my-server/#findComment-125215 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.