Dateiendung erkennen

September 2009

Dieses Skript zeigt drei Möglichkeiten, wie man an die Dateiendung heran kommt.

Zuerst wird ein Pfad vorgegeben, welcher zur gewünschten Datei führt. Ob absolut oder relativ spielt keine Rolle.
<?php
# die Datei
$path 'http://example.com/dir/myFile.xml';
?>

Die erste Variante benutzt explode() und array_pop():
<?php
# die Dateiendung
$tmp explode('.'$path);
$endung array_pop($tmp);
?>

Die zweite Variante benutzt strrchr() und substr():
<?php
# die Dateiendung
$endung substrstrrchr($path'.'), 1);
?>

Die letzte Variante benutzt preg_match():
<?php
# die Dateiendung
preg_match('#\.([a-z0-9]+)$#i'$path$tmp);
$endung $tmp[1];
?>

Alle drei haben dasselbe Resultat (gespeichert in $endung):
xml
Nun gibt es jedoch einen grossen Unterschied, was die Geschwindigkeit der Funktionen betrifft.
Bei 10'000 Durchläufen einer for-Schleife benötigt die erste Variante 27 ms, die zweite 15 ms und die dritte ganze 71 ms.
Somit schneidet Variante 2 mit strrchr() am besten ab.

Aber aufgepasst: Wenn die Datei möglicherweise keine Endung besitzt, ist man mit Variante 3 am besten aufgehoben, denn nur diese gibt in diesem Falle ein leeres Resultat zurück.

Siehe auch:
 
PHP


Andere Einträge