23.07.2011 11:41
OlegON
 
По необходимости иногда приходится залазить в недра форума или этого же блога и что-то править.
Был неприятно удивлен, что в Хранилище форума не удавалось залить русскоязычные файлы, часть наименования просто терялась. Благодаря Михайлову Антону выяснилось, что во всем виновата функция PHP basename(), и нашлась ее замена, корректно работающая.

Код:
function pcgbasename($param, $suffix=null) { 
        if ( $suffix ) { 
            $tmpstr = ltrim(substr($param, strrpos($param, DIRECTORY_SEPARATOR) ), DIRECTORY_SEPARATOR); 
            if ( (strpos($param, $suffix)+strlen($suffix) )  ==  strlen($param) ) { 
                return str_ireplace( $suffix, '', $tmpstr); 
            } else { 
                return ltrim(substr($param, strrpos($param, DIRECTORY_SEPARATOR) ), DIRECTORY_SEPARATOR); 
            } 
        } else { 
            return ltrim(substr($param, strrpos($param, DIRECTORY_SEPARATOR) ), DIRECTORY_SEPARATOR); 
        } 
    }
одно не понятно, в PHP этот баг уже несколько лет существует, почему бы не поправить... Пых, одним словом...
Часовой пояс GMT +3, время: 10:36.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.