Hola , pues mira yo me tome el trabijto de hacer un navegador sencillo para ti , espero que te sirva :).
Código php:
Ver original<?php
function recorreDirectorio($path)
{
$path_init = $path;
foreach (new DirectoryIterator($path) as $fichero) {
if (!$fichero->isDot()) {
if ($fichero->isDir()) {
$path = $path_init . '/' . $fichero->getFilename();
echo "<b>Listado del directorio: " . $path . "</b></br>";
recorreDirectorio($path);
} else {
$link = $path_init . '/' . $fichero->getFilename();
echo "Fichero: <a href='{$link}'>" . $fichero->getFilename() . "</a>" . "</br>";
}
}
}
unset($path, $path_init); }
//-- Invocación
recorreDirectorio('d://');
?>
Lo unico que debes tener en tu servidor es php 5 , pero sinceramente ya casi todos lo tiene asi que... , mi codigo usa una forma algo diferente a la tuya , mas resumida y veloz por asi decirlo , fijate lo de new DirectoryIterator($path); , eso genera lo mismo que tu con opendir y readir :).
Cualquier error que te salga o no sepas como resolverlo o modificación avisame y te ayudo.
Saludos