Определить расширение файла средствами 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/
Ребят, помогите плиз, вывожу файлы из каталога с названиями, надо обрезать разширение .jpg
как это сюда вкрячить?
в смысле, что бы название под картинкой было без .jpg
Виноват,
preg_replace(‘/^.*\.([^\.]+)$/U’, ‘$1′, $path);
Или так
preg_replace(‘/\.([^\.]+)$/U’, ‘$1’, $path);
еще одна копия
наверное тогда уже
preg_replace(‘/^.*\.(.*)$/s’, ‘$1′, $path);
точка та не одна бывает в имени файла!
наверное тогда уже
preg_replace(‘/^.*\.(.*)$/s’, ‘$1’, $path);
точка та не одна бывает в имени файла!