Seite 1 von 1

[PHP] Dateiendung ausgeben

Verfasst: 11.12.2006 12:07
von Underhill
Hi,

ich bin etwas unentschlossen...

Code: Alles auswählen

$extention = substr($filename, -4, 4);
oder

Code: Alles auswählen

preg_match('/.{4}$/', $filename, $array);
$extention = $arry[0];
Beides gibt mir von "dateiname.end" die gewuenschte Endung ".end" aus.

Ich persoenlich finde nur die Perl-kompatibele Variante etwas umstaendlicher...

Was ist besser/schneller? Oder gibt es eine andere Methode (ohne Pear)?


Danke und Gruss
Underhill

Verfasst: 11.12.2006 12:11
von Olli Oberhausen
Ich nutze das hier.

Code: Alles auswählen

$extension = strtolower( substr( strrchr($filename, ".") ,1) );
Gibt nur die extension aus (jpg, jpeg, tiff usw)
substr() ist bei einfachen operationen immer schneller ans preg_

Gruß, Olli

Verfasst: 11.12.2006 12:19
von Dr.Death
Und so wird es in phpBB3 Olympus gemacht:

Code: Alles auswählen

$phpEx = substr(strrchr(__FILE__, '.'), 1);

Verfasst: 11.12.2006 12:45
von Underhill
Bingo!

Nar klar :roll:

Code: Alles auswählen

strrchr($file, '.')
ist besser...

Ich hatte mich erst nur an "strstr()" aufgehalten, die Idee aber wieder verworfen weil es nicht Rueckwaerts ist... :roll:

Danke fuer den Tipp...

Gruss
Underhill

Verfasst: 11.12.2006 12:48
von StarWolf3000
hab auch noch was:

Code: Alles auswählen

strtolower(substr(basename($file), strrpos(basename($file), ".")+1))
den strtolower-Aufruf kann man auch weglassen, wenn nichts an der Groß-/Kleinschreibung geändert werden soll

Verfasst: 11.12.2006 13:03
von Underhill
Hi,

danke - aber "basename()" ist nicht mehr erfoderlich, da an dieser Stelle bereits der Dateiname als solcher existiert...


Gruss
Underhill

Verfasst: 11.12.2006 14:29
von PhilippK