По необходимости иногда приходится залазить в недра форума или этого же блога и что-то править.
Был неприятно удивлен, что в Хранилище форума не удавалось залить русскоязычные файлы, часть наименования просто терялась. Благодаря Михайлову Антону выяснилось, что во всем виновата функция 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 этот баг уже несколько лет существует, почему бы не поправить... Пых, одним словом...