Время для прочтения: 0 мин. 28 сек.

Получить расширение файла

Получить расширение файла в РНР задача не сложная и способов ее решения существует масса. Давайте попробуем рассмотреть несколько возможных вариантов.


<?php

$filename = 'имя файла';

// 1 способ
echo end(explode('.', $filename));

// 2 способ
echo array_pop(explode('.', $filename));

// 3 способ
echo substr(strrchr($filename, '.'), 1);

// 4 способ
echo substr($filename, strrpos($filename, '.') + 1);

// 5 способ
echo pathinfo($filename, PATHINFO_EXTENSION);

?>

Сам использую пятый способ, так как он лишен многих недостатков первых четерёх вариантов.

Что касается скорости

Все варианты дают примерно одинаковый результат. Чтобы сравнить все возможные варинаты по скорости, заведём цикл на 70000 оборотов и замерим. В результате получим:

  • Вариант 1 — 0.7333430 сек
  • Вариант 2 — 0.7562270 сек
  • Вариант 3 — 0.5981759 сек
  • Вариант 4 — 0.711136 сек
  • Вариант 5 — 0.6780031 сек

Для вставки кода используйте HTML-теги
<pre><code class="php">ваш код</code></pre>

  • Maxim, Добавил замеры скорости в статью, но проще вам самому померять у себя на хостинге, так как результаты могут отличаться.

    • Maxim

      Спасибо, тут дело не в хостинге. Этот участок кода критичен в PHP-GTK приложении, знаю, что эту технологию считают дикостью.

  • Maxim

    А что по поводу скорости? Зачастую приходится получать не один десяток расширений.