Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Pathinfo


Автор: Ripper 5.12.2011, 16:05
Добрый день.
А функция pathinfo не сможет извлечь имя файла если в нем русские символы? Есть файл "uploads/выафыа.jpg", использование
Код

        $fileName = pathinfo($path . $file, PATHINFO_FILENAME);

Возвращает пустую строку. Для файлов написанных на латинице все нормально.

Автор: WolfAlone 5.12.2011, 16:16
Зачем Вам русские имена файлов?

Автор: ksnk 5.12.2011, 16:19
Цитата

Замечание:

pathinfo() учитывает настройки локали, поэтому для корректной обработки пути с многобайтными символами должна быть установлена соответствующая локаль с помощью функции setlocale().

http://ru.php.net/pathinfo

Автор: g27 11.6.2012, 22:18
так же столкнулся с этой проблемой, нашёл в интернете такое решение ещё

Код

function full_pathinfo($path_file){
        $path_file = strtr($path_file,array('\\'=>'/'));
        
        preg_match("~[^/]+$~",$path_file,$file);
        preg_match("~([^/]+)[.$]+(.*)~",$path_file,$file_ext);
        preg_match("~(.*)[/$]+~",$path_file,$dirname);
        
        return array('dirname' => $dirname[1],
        'basename' => $file[0],
        'extension' => (isset($file_ext[2]))?$file_ext[2]:false,
        'filename' => (isset($file_ext[1]))?$file_ext[1]:$file[0]);
    }

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)