if (is_dir($file) || preg_match('~(?i)\.(avi|xvid)$~', $file)) {
warum nicht den dateinahme mit pathinfo zerlegen und die endung dann mit in_array gegen ein array an erlaubten bzw verbotenen dateiendungen prüfen? reguläre ausdrücke schön und gut, aber wenns nicht notwendig ist - warum?
echo '<a href="'.$compl.'"><img src="./pfad/zu/multimediadateisymbol.gif" alt="Verzechnis" />/'.$filename.'</a><br/>';
was spricht gegen meinen vorschlag mit einer klasse sowie dem icon als hintergrundbild?