Dateinamen filtern

Papenburger

Erfahrenes Mitglied
Hallo,

wie kann ich einen Dateinamen filtern.

Beispiel:
Datei: Testdateien.Ausgabe.Beta1.zip

möchte ich folgendes haben:
Name: Testdateien.Ausgabe.Beta1
Dateiendung: zip

Wie bekomme ich die Dateiendung heraus wenn sich im Dateinamen mehrere Punkte befinden?


MFG
Papenburger
 
PHP:
$datei = 'Testdateien.Ausgabe.Beta1.zip';
$endung = substr( strrchr( $datei, '.' ), 1 );
$dateiname = substr( $datei, 0, strlen( $datei ) - strlen( $endung ) - 1 ) ;

//edit: Das von Felix ist besser :)
 
Zuletzt bearbeitet:
[phpf]basename[/phpf] sollte dir helfen.

PHP:
<?php
$file = 'Testdateien.Ausgabe.Beta1.zip';
$type = substr($file, strrpos($file, '.'));
$file = basename($file, $type);
?>
 
Was wäre wenn es sich um eine Dateiendung mit zwei Punkten handelt?
Zum Beispiel: foo.tar.gz
 
Was wäre wenn es sich um eine Dateiendung mit zwei Punkten handelt?
Zum Beispiel: foo.tar.gz

Die Frage ist, zählt es wirklich als Dateiendung?
Denn Windows Vista (Umbenennung) und PHP selbst ([phpf]pathinfo[/phpf]) erkennen ebenfalls nur .gz.

Übrigens obiges Beispiel ist natürlich obsolet, da es so am einfachsten geht:

PHP:
<?php
$file = 'Testdateien.Ausgabe.Beta1.tar.gz';
$file = pathinfo($file);
var_dump($file);
?>
 
Zurück