The function below will return a sorted array of directories & files in the requested directory. No hidden (/^./) files are listed. Copy and paste away.
// @return array of names
function directory_listing($d)
{
$dl = array();
if ($hd = opendir($d)) {
while ($sz = readdir($hd)) {
if (preg_match("/^\./",$sz)==0) {
$dl[] = $sz;
}
}
closedir($hd);
}
asort($dl);
return $dl;
}
Here is the same routine with PHP SPL objects. The list returned contains objects that represent each of the files.
// @return array of directory entry objects (files/dirs)
function directory_listing($d)
{
$di = new DirectoryIterator($d);
$dl = array();
foreach ($di as $de) {
if ($de->isDot()) {
continue;
}
//echo $de->getFilename() . "\t";
//echo $de->getSize() . "\t";
//echo $de->getOwner() . "\t";
//echo $de->getMTime() . "\n";
$dl[$de->getFilename()] = $de;
}
ksort($dl);
return $dl;
Either one can be used as follows:
$list = directory_listing('/opt/foo/bar');