Es gibt ja viele Möglichkeiten, mit denen man eine Dateiendung aus einem String extrahieren kann.
Ich bin zum Beispiel auf zwei String- und eine Array-Explode-Möglichkeit gestossen.
Ein kurzer Test ergibt folgendes:
Die Array-Variante ist deutlich schneller. Gilt das generell für das Bearbeiten von Strings mit Array-Funktionen?
Gibt es eine noch schnellere Möglichkeit?
Ich bin zum Beispiel auf zwei String- und eine Array-Explode-Möglichkeit gestossen.
Ein kurzer Test ergibt folgendes:
PHP-Code:
<?php
$file = "/www/virtual/some/path/to/file.jpg";
$start = microtime();
echo "Test 1: explode<br />";
for($i=0; $i<10000; $i++)
$ext = strtolower(end(explode(".", $file)));
$end = microtime();
echo ($end - $start)."<br /><br />";
echo "Test 2: strpos<br />";
for($i=0; $i<10000; $i++)
$ext = substr($file, strrpos($file, '.') + 1);
$end = microtime();
echo ($end - $start)."<br /><br />";
echo "Test 3: strrchr<br />";
for($i=0; $i<10000; $i++)
$ext = substr(strrchr($fileName, '.'), 1);
$end = microtime();
echo ($end - $start)."<br /><br />";
?>
Test 1: explode
0.099626
Test 2: strpos
0.132479
Test 3: strrchr
0.190867
0.099626
Test 2: strpos
0.132479
Test 3: strrchr
0.190867
Gibt es eine noch schnellere Möglichkeit?
Kommentar