Проход по директории средствами PHP

В пхп есть очень удобная, встроенная функция, которая позволяет получить список файлов из директории - scandir. Однако, на некоторых серверах, встречаются проблемы с выполнением этой функции, поэтому приходилось искать костыли, например такие:

$dir = "/tmp";
$dh  = opendir($dir);
$files = array();
while (false !== ($filename = readdir($dh))) {
    $files[] = $filename;
}
sort($files);
print_r($files);

Функция читает директорию "/tmp", далее создаем указатель $dh командой opendir, далее обычным циклом while, пока есть что читать выдираем названия файлов в массив $files. На выходе мы имеем массив с названиями файлов, расположенных в директории "/tmp".

Следующую функцию я использовал на архаичных хостингах с 4-м PHP, функция очень похожа на первые костыли, но почему-то я использовал именно ее :)

function php4_scandir($dir,$listDirectories=false, $skipDots=true) {    $dirArray = array();    if ($handle = opendir($dir)) {        while (false !== ($file = readdir($handle))) {            if (($file != "." && $file != "..") || $skipDots == true) {                if($listDirectories == false) { if(is_dir($file)) { continue; } }                array_push($dirArray,basename($file));            }        }        closedir($handle);    }    return $dirArray;}

Этих функций достаточно для того, чтобы получить список файлов из директории средствами PHP на разных хостингах, в зависимости от поставленной задачи нужно подправлять код функций, например иногда требуется ввести некоторые фильтры на файлы по маскам в названиях, или еще что - жизнь не предсказуемая штука ;)