Главная > PHP > Определить расширение файла средствами PHP

Определить расширение файла средствами PHP

$path — конечно путь к файлу..
1. explode() — полученная строка преобразуется в массив строк, границами которых в оригинале был разделитесь «точка». Для случаев, когда точек несколько — end() возвращает последний элемент массива.

end(explode(".", $path));

2. pathinfo() возвращает ассоциативный массив, содержащий информацию о нужном файле, а именно элементы dirname, basename и extension (если задача узнать не только расширение файла).

$path_info = pathinfo($path);
$ext = $path_info['extension'];

3. strrpos() возвращает позицию последней точки в строке, а substr() вырезает все символы, начиная с полученной ранее позиции точки, до конца строки. Для удаления точки в полученной подстроке, увеличиваем начало старта на одно смещение вправо (+1).

substr($fileName, strrpos($path, '.') + 1);

4. strrchr() возвращает участок строки, следующий за указанным параметром (в нашем случае точкой), после чего substr() отрезает первый символ — точку.

substr(strrchr($path, '.'), 1);

5. array_pop() — выталкивает элемент в конце массива, end() — устанавливает внутренний указатель массива на последний элемент.

array_pop(explode(".", $path));

6. pathinfo

pathinfo($path, PATHINFO_EXTENSION);

7. preg_replace

preg_replace('/^.*\.(.*)$/U', '$1', $path);

8. preg_match

preg_match('/\.(.*)$/U', $path, $matches)? $matches[1]: '';

Подробнее в источнике: http://habrahabr.ru/blogs/php/37753/

Categories: PHP Tags:
  1. Gashik
    Апрель 26th,2013 в 05:20 | #1
    <?php
      $dir = &#039;antiques/Accessories/Clothing/&#039;; // Папка с изображениями
      $ar=array();
      $name = scandir($dir);
      $parts = pathinfo($img);
      $cols = 3; // Количество столбцов в будущей таблице с картинками
      $files = scandir($dir); // Берём всё содержимое директории
      echo ""; // Начинаем таблицу
      $k = 0; // Вспомогательный счётчик для перехода на новые строки
      for ($i = 0; $i < count($files); $i++) { // Перебираем все файлы
        if (($files[$i] != ".") && ($files[$i] != "..")) { // Текущий каталог и родительский пропускаем
          if ($k % $cols == 0) echo ""; // Добавляем новую строку
          echo ""; // Начинаем столбец
          $path = $dir.$files[$i]; // Получаем путь к картинке
          echo "<a href="$path" rel="nofollow">"; // Делаем ссылку на картинку
          echo ""; // Вывод превью картинки
          echo "$name[$i]";
          echo "</a>"; // Закрываем ссылку
          echo ""; // Закрываем столбец
          /* Закрываем строку, если необходимое количество было выведено, либо данная итерация последняя */
          if ((($k + 1) % $cols == 0) || (($i + 1) == count($files))) echo "";
          $k++; // Увеличиваем вспомогательный счётчик
        }
      }
      echo ""; // Закрываем таблицу
     
    ?>

    Ребят, помогите плиз, вывожу файлы из каталога с названиями, надо обрезать разширение .jpg
    как это сюда вкрячить?
    в смысле, что бы название под картинкой было без .jpg

  2. Иван
    Сентябрь 20th,2012 в 17:13 | #2

    Виноват,
    preg_replace(‘/^.*\.([^\.]+)$/U’, ‘$1′, $path);

  3. Иван
    Сентябрь 20th,2012 в 17:11 | #3

    Или так

    preg_replace(‘/\.([^\.]+)$/U’, ‘$1’, $path);

  4. Антон
    Ноябрь 17th,2011 в 14:12 | #4

    еще одна копия

  5. dron
    Сентябрь 1st,2011 в 15:13 | #5

    наверное тогда уже
    preg_replace(‘/^.*\.(.*)$/s’, ‘$1′, $path);
    точка та не одна бывает в имени файла!

  6. Sulik
    Февраль 22nd,2011 в 21:31 | #6

    наверное тогда уже
    preg_replace(‘/^.*\.(.*)$/s’, ‘$1’, $path);
    точка та не одна бывает в имени файла!

Похожие публикации