lo script sembra corretto ma cosa dovrebbe fare?
ad ogni ciclo $file contiene il nome del file della directory $dir.

dovresti x esempio fare una cosa tipo

echo '[img]'.$file.'[/img]';

all'interno del ciclo while, invece di touch($file)