Hallo Ingrid,
eine Korrektur:
Kannst Du Dir vorstellen, dass es Zeichen in Dateinamen geben kann, die in einem HTML-Kontext oder einem URL-Kontext innerhalb eines HTML-Kontextes auftreten, kontextgemäß behandelt werden müssen. Warum machst Du dies nicht?
echo '<li><a href="' .$dir. "/" .$dir_or_file. '">'. $dir_or_file. '</a></li>'."\n";
Freundliche Grüße
Vinzenz