Will man die Dateiendung via RegExp aus einem String entfernen, ist folgendes Snippet nützlich. Das Script beachtet dabei, dass Dateiendungen aus 3 (z.B. .php) oder 4 (z.B. .html) Zeichen bestehen können.
Sollen mehr Zeichen in der Dateiendung beachtet werden (z.B. .phtml in Magento), so kann der Teil {3,4} z.B. in {3,5} angepasst werden.
preg_replace("/\\.[^.\\s]{3,4}$/", "", $filename)