Lo script che hai indicato, senza aver seguito nessuno degli esempi che ti sono stati proposti, così come si trova non riuscirebbe a scrivere nulla oltre a "ciao". Questo perchè la variabile $file è limitata all'interno del ciclo while. Qualora venisse modificato per rendere accessibile la variabile $file anche all'esterno del ciclo, oltre al nome dei file ti scriverebbe anche gli indici delle directory, cioè . e ..

Comunque, queste sono le modifiche da apportare al codice.

Sostituisci il while col codice che segue. E' necessario aggiungere un controllo per evitare di recuperare anche i nodi relativi alle cartelle, quella principale e le relative. Poi bisogna raggruppare i valori recuperati dalla ricerca in un array...

Codice PHP:
while (($file readdir($dh)) !== false) {
  if(
$file != '.' && $file != '..') {
    echo 
"$file 
filetype($dir $file) .  "\n";
      
$files[] = $file;
  }

riscrivi la variabile $somecontent per permetterle di scrivere effettivamente i valori recuperati precedentemente in $files

Codice PHP:
$somecontent implode("\r\n"$files); 
alla fine, sostituisci

Codice PHP:
if (!fwrite($handle$somecontent) ===FALSE
con

Codice PHP:
if (!fwrite($handle$somecontent))