powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (PHP) Как удобнее получить расширение файла из $_FILES ?
13 сообщений из 13, страница 1 из 1
(PHP) Как удобнее получить расширение файла из $_FILES ?
    #33803543
Geen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Задача - аплоад картинки с переименованием.

$pref = date("Ymdhis");
$p = ($_FILES['userfile']['name']);

// взято из другого кода
@$ext = strtolower($p['extension']);
if (in_array($ext,array('jpeg','jpe','jpg'))) $ext = 'jpeg';
if (in_array($ext,array('gif'))) $ext = 'gif';
if (in_array($ext,array('png'))) $ext = 'png';
//не отдает расширение

$file = $pref . $ext;

может строку разбирать лучше? надоумьте а?
Модератор:
Оформляйте топики согласно требованиям форума!!! Топики оформленные не по правилам - будут удаляться.
...
Рейтинг: 0 / 0
(PHP) Как удобнее получить расширение файла из $_FILES ?
    #33803605
Фотография 4m@t!c
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Upload файлов, и все с этим связанное
----------------------------------------
Артисты не приехали, приехали цыгане
...
Рейтинг: 0 / 0
(PHP) Как удобнее получить расширение файла из $_FILES ?
    #33803620
Geen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 4m@t!c
и Вам здравствовать:)
читал неоднократно хотелось бы получить комментарий специалиста, а не эту ссылку

ЗЫ а что - изменились правила?

Geen
...
Рейтинг: 0 / 0
(PHP) Как удобнее получить расширение файла из $_FILES ?
    #33803643
*
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
*
Гость
http://phpclub.ru/faq/ReadManual + http://php.net/strings
PS: и при чём тут upload?
...
Рейтинг: 0 / 0
(PHP) Как удобнее получить расширение файла из $_FILES ?
    #33803820
Geen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
решение

$pref = date("Ymdhis");
$ext = substr($_FILES['userfile']['name'], 1 + strrpos($_FILES['userfile']['name'], "."));
if (in_array($ext,array('jpeg','jpe','jpg'))) $p = 'jpeg';
if (in_array($ext,array('gif'))) $p = 'gif';
if (in_array($ext,array('png'))) $p = 'png';
$file = $pref . '.' .$p;

всем спасибо
...
Рейтинг: 0 / 0
(PHP) Как удобнее получить расширение файла из $_FILES ?
    #33804731
anvano
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Geenрешение
$pref = date("Ymdhis");
$ext = substr($_FILES['userfile']['name'], 1 + strrpos($_FILES['userfile']['name'], "."));


А если файлик называется my_file.some_text.more_text.exe.jpg ?
...
Рейтинг: 0 / 0
(PHP) Как удобнее получить расширение файла из $_FILES ?
    #33804808
Фотография Robert Tappan Moris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
$ext = substr($_FILES['userfile']['name'],-strpos(strrev($_FILES['userfile']['name']),'.'));

...
Рейтинг: 0 / 0
(PHP) Как удобнее получить расширение файла из $_FILES ?
    #33804834
Фотография Berkut
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если, считать что формат файла определен как
Код: plaintext
1.
filename.ext
то можно и так
Код: plaintext
1.
        $ext = substr(strrchr($filename,'.'),  1 );

P.S. расширением считаем все, что идет за последней точкой.
...
Рейтинг: 0 / 0
(PHP) Как удобнее получить расширение файла из $_FILES ?
    #33806174
Geen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
добавил даже большие буквы (на всякий случай) странно для джпегов работает, гиф - не находит
$ext = substr($_FILES['userfile']['name'], 1 + strrpos($_FILES['userfile']['name'], "."));
if (in_array($ext,array('jpeg','jpe','jpg','JPEG','JPE','JPG'))) {$p = 'jpeg';}
if (in_array($ext,array('gif'.'GIF'))) {$p = 'gif';}
if (in_array($ext,array('PNG'))) {$p = 'png';}
$file = $pref . '.' .$p;

что за глюк...

2 Robert Tappan Moris
$ext = substr($_FILES['userfile']['name'],-strpos(strrev($_FILES['userfile']['name']),'.'));

я так понимаю отсечет от последней точки?
...
Рейтинг: 0 / 0
(PHP) Как удобнее получить расширение файла из $_FILES ?
    #33806428
Фотография Berkut
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Geen

Приводите всегда полученное расширение к нижнему регистру (strtolower()).
Так вам не понадобится хранить дополнительные значения в массивах.

А что будет если файл такой imagefile.gIF ? :)

Во-вторых, чем не устраивает мой вариант?
Хотя бы сравните по кол-ву функций. ;)
...
Рейтинг: 0 / 0
(PHP) Как удобнее получить расширение файла из $_FILES ?
    #33806442
Фотография Berkut
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Geenгиф - не находит
...
if (in_array($ext,array('gif' . 'GIF'))) {$p = 'gif';}
...
Рейтинг: 0 / 0
(PHP) Как удобнее получить расширение файла из $_FILES ?
    #33806457
Фотография Berkut
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Немного другой вариант скрипта (правда не совсем понятно, что вы там пытаетесь добиться):
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
<?php

$ext = strtolower(substr(strrchr($_FILES['userfile']['name'],'.'),  1 ));

switch (true)
{
    case in_array($ext, array('jpeg','jpe','jpg')):
    {
        $p = 'jpeg';
        break;
    }
    case ($ext=='gif'):
    {
        $p = 'gif';
        break;
    }
    case ($ext=='png'):
    {
        $p = 'png';
        break;
    }
}

$file = $pref . '.' .$p;
?>
...
Рейтинг: 0 / 0
(PHP) Как удобнее получить расширение файла из $_FILES ?
    #33806511
Geen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Berkut
признаю, виновен сам:)
спасибо
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (PHP) Как удобнее получить расширение файла из $_FILES ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]