PHP: Dateiname ohne Dateierweiterung - der beste Weg?

Ich versuche, den Dateinamen ohne die Erweiterung aus einem Verzeichnis zu ziehen.

Ich schleiche mich mit folgendem durch:

foreach ($allowed_files as $filename) { 
  $link_filename = substr(basename($filename), 4, strrpos(basename($filename), '.'));
  $src_filename = substr($link_filename, 0, strrpos($link_filename) - 4);
  echo $src_filename;
}

... Aber das kann nicht funktionieren, wenn die Länge der Erweiterungszeichenfolge mehr als 3 beträgt. Ich habe mich in den PHP-Dokumenten vergeblich umgesehen.