Lieber Mark,
$filter=array($filter_dat);
Was'n DAS^^^???
Das, was die Funktion file() zurückliefert _ist bereits_ ein Array! Nach jedem Zeilenumbruch wird gesplittet, so dass Deine Array-Einträge durch Zeilenumbrüche getrennt aufgenommen werden. Deshalb kannst Du Dir die zitierte Zeile komplett ersparen! Wenn Dein Pfad nicht absolut definiert ist (unter Windows wäre "c:\Programme\Mist\Dreck.exe" ein absoluter, "Unterverz/test.html" ein relativer Pfad), dann kann PHP Deine Datei nicht finden!
Liebe Grüße aus Ellwangen,
Felix Riesterer.