• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Dateiendung entfernen

Status
Für weitere Antworten geschlossen.

Giro

Neues Mitglied
Hallo,

ich habe einen String der Form "name.xyz". Wie kann man aus diesem String die Dateiendung(".xyz") entfernen?

mfg
 
Zuletzt bearbeitet:
Werbung:
Die einfache Variante:
PHP:
$datei = "name.xyz";
$datei = explode(".",$datei);
echo $datei[0]; // ausgabe: name
Diese Variante wird jedoch fehlschlagen, sowie der Dateiname ein . enthält. Zum Beispiel eine Datein mit dem Namen: name.name2.xyz

Deswegen hier eine komplexere Variante:
PHP:
$datei = "name.name2.xyz";
$dateiarray = explode(".",$datei);
$endung = ".".$dateiarray[count($dateiarray)-1];
echo basename($datei,$endung);

Wenn die endung jedoch immer gleich ist, kannst du einfach folgendes benutzen:
PHP:
$datei = "name.php"
$endung = ".php";
echo basename($datei,$endung);
 
Zuletzt bearbeitet:
Werbung:
das geht mit Regexen in Verbindung mit der php-Funktion preg_split
Links: http://proggman.myblog.com/category/3089.html
edit:// Zu Franks Lösung: Explode ist sicherlich schneller, aber wenn du irgendwann mal profesionellere Sachen schreiben willst gewöhn dir explode ab!

Erstmal danke für die Hilfen, aber macht explode nicht eigentlich dasselbe wie preg_split? Wo ist denn der unterschied?
Und wie funktioniert das denn mit Regexen? Da hat man doch auch das Problem, dass evtl. im Dateinamen selbst Punkte sind.
 
wieso sollte man bitte regexp (Regular Expressions) nehmen, wenn man sie nicht benötigt und andere funktionen schneller arbeiten?

Natürlich sind mit preg_split mehr varianten aufzufangen, aber soweit ich weiß werden dateiendungen immer mit einem . vom Dateinamen getrennt. Wenn es mehrere verschiedene Zeichen für die Abtrennung von Dateiendungen geben würde, dann wären regexp sicherlich besser.

@ Giro
wahrscheinlich wollte er nur seinen Link präsentieren...
 
weil du mit preg_split einiges mehr an Funktionen hast und explode(), wie man so schön sagt, die "Kinderversion" von preg_split ist.. Du gibst dich doch auch nicht mit einem phpbb zufreiden, obwohl es eigentlich für die meisten Probleme, die selben Aufgaben erfüllt wie ein wbb oder ein vbulletin.. ;) (Zumal die Tendenz der DSL-Anschlüsse steigend ist und man da den Unterschied der Zeitverzögerung nicht mehr realisiert..
Proggman
 
Werbung:
Status
Für weitere Antworten geschlossen.
Zurück
Oben