Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Расширение файла

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Как получить расширение файла...
Рус
Отправлено: 12 Июля, 2007 - 00:51:01
Post Id



Новичок


Покинул форум
Сообщений всего: 26
Дата рег-ции: Июль 2007  
Откуда: Можайск


Помог: 0 раз(а)




Знатоки, подскажите, как узнать расширение файла, или имя файла без расширения?


-----
Желаю чтобы все...
 
 Top
Джур
Отправлено: 12 Июля, 2007 - 07:59:46
Post Id



Посетитель


Покинул форум
Сообщений всего: 423
Дата рег-ции: Март 2007  


Помог: 0 раз(а)




хыы... ну допустим никак...
единственное что может тут помочь это залезть в содержимое файла и по "приметам" определить что это за файл такой...
достоверно можно определить файлы .exe .bmp .gif .mp3 .avi .doc .rtf .xml


-----
Тамбовский каджит тебе товарищ
 
 Top
Рус
Отправлено: 12 Июля, 2007 - 15:02:40
Post Id



Новичок


Покинул форум
Сообщений всего: 26
Дата рег-ции: Июль 2007  
Откуда: Можайск


Помог: 0 раз(а)




Не, так не пойдёт. Проблема в том, что есть переменная с именем файла $file = 'document.php', как из 'document.php' получить 'document'. Можно было бы воспользоваться функцией substr($file, -0, 4), но тут-то и вся фишка, а что если расширение файла будет не *.php, а к примеру *.html или *.js. Как быть в этом случае?

P.S. Забыл упомянуть, что значение переменной заранее неизвестно, значение получает во время работы скрипта. (это я так, на всякий случай)


-----
Желаю чтобы все...
 
 Top
evgenijj
Отправлено: 12 Июля, 2007 - 15:10:49
Post Id



Участник


Покинул форум
Сообщений всего: 1212
Дата рег-ции: Авг. 2006  
Откуда: Москва


Помог: 10 раз(а)




Рус пишет:
Не, так не пойдёт. Проблема в том, что есть переменная с именем файла $file = 'document.php', как из 'document.php' получить 'document'. Можно было бы воспользоваться функцией substr($file, -0, 4), но тут-то и вся фишка, а что если расширение файла будет не *.php, а к примеру *.html или *.js. Как быть в этом случае?

P.S. Забыл упомянуть, что значение переменной заранее неизвестно, значение получает во время работы скрипта. (это я так, на всякий случай)


Ищи последнее вхождение "."(точка)
http://php.su/functions/?strrpos
Ну а дальше - substr()
 
 Top
Рус
Отправлено: 12 Июля, 2007 - 16:12:41
Post Id



Новичок


Покинул форум
Сообщений всего: 26
Дата рег-ции: Июль 2007  
Откуда: Можайск


Помог: 0 раз(а)




Да, спасибо. Всё получилось. сделал так:

$file_name = substr($file, 0, -strlen(strstr ($file, ".")));

Поясняю для тех, кто столкнётся с подобной проблеммой:

из переменной $file = 'index.php' получаем '.php' с помощью функции strstr ($file, ".");

определяем длинну полученной строки strlen(strstr ($file, ".")) (в результате - 4);

далее удаляем из 'index.php' всё ненужное substr($file, 0, -strlen(strstr ($file, "."))) и получаем то, что надо: 'index'.


-----
Желаю чтобы все...
 
 Top
evgenijj
Отправлено: 12 Июля, 2007 - 16:25:02
Post Id



Участник


Покинул форум
Сообщений всего: 1212
Дата рег-ции: Авг. 2006  
Откуда: Москва


Помог: 10 раз(а)




Плохое решение: ты ищешь первое вхождение точки, а надо искать последнее
$filename = "default.tpl.html";
 
 Top
Рус
Отправлено: 12 Июля, 2007 - 16:41:30
Post Id



Новичок


Покинул форум
Сообщений всего: 26
Дата рег-ции: Июль 2007  
Откуда: Можайск


Помог: 0 раз(а)




Цитата:
Плохое решение: ты ищешь первое вхождение точки, а надо искать последнее
$filename = "default.tpl.html";

Согласен, об этом я не подумал... Тогда strrchr ($file, ".");. Так, похоже лучше...


-----
Желаю чтобы все...
 
 Top
mike
Отправлено: 13 Июля, 2012 - 13:00:42
Post Id


Новичок


Покинул форум
Сообщений всего: 1
Дата рег-ции: Июль 2012  


Помог: 0 раз(а)




// Получаем расширение файла
$myfile_name = 'test.xls';
$info = pathinfo($myfile_name);
$ext = ".".$info['extension']; // искомое расширение
 
 Top
armancho7777777 Супермодератор
Отправлено: 13 Июля, 2012 - 13:06:42
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




Рус, для таких тривиальных задач в PHP уже всё есть))
Имя файла:
PHP:
скопировать код в буфер обмена
  1. echo pathinfo($myfile_name, PATHINFO_BASENAME);

Расширение файла:
PHP:
скопировать код в буфер обмена
  1. echo pathinfo($myfile_name, PATHINFO_EXTENSION);

(Отредактировано автором: 13 Июля, 2012 - 13:14:14)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB