In pratica, sia la prima che la seconda alternativa che ti ho suggerito, svolgono la stessa funzione "così" come sono scritte. Non vanno integrate al codice che hai postato precedentemente, ma dovrai trascrivere il tutto così com'è...

Per maggiore chiarezza ti mostro un esempio completo relativo alla seconda soluzione proposta:
codice:
$d = dir('.');
 while(false !== ($entry = $d->read())) { 
  // Elenca "solo" i file con estensione .txt
  // if(!is_dir($entry) && end(explode('.', $entry)) == "txt")
    
  // In questo modo invece ti elenca "tutti" i file
  // contenuti nella directory in cui si trova lo script
  if(!is_dir($entry))
    echo "<a href=\"$entry\">$entry</a>
\n"; 
 } 
$d->close();
Spero sia tutto chiaro adesso...