WildCat Опубликовано 7 Декабря 2009 Жалоба Поделиться Опубликовано 7 Декабря 2009 Бегло просмотрел - не заметил решения. Оно вообще есть? А то не совсем красиво выглядит: Прикрепленный файл ____________________________.mp3 ( 5.32 мегабайт ) Кол-во скачиваний: 9 Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
0 TOIIOP Опубликовано 7 Декабря 2009 Жалоба Поделиться Опубликовано 7 Декабря 2009 Файл /ips_kernel/class_upload.php, найти: $FILE_NAME = preg_replace( "/[^\w\.]/", "_", $FILE_NAME );Заменить на: $FILE_NAME = preg_replace( "/[^\wА-Яа-я.]/", "_", $FILE_NAME ); Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
0 WildCat Опубликовано 7 Декабря 2009 Автор Жалоба Поделиться Опубликовано 7 Декабря 2009 нет, тогда аттачи имеют вид _________..._________.mp3 Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
0 GiV Опубликовано 7 Декабря 2009 Жалоба Поделиться Опубликовано 7 Декабря 2009 $FILE_NAME = preg_replace( "/[^\w\.А-Яа-я]/", "_", $FILE_NAME ); Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
0 FatCat Опубликовано 7 Декабря 2009 Жалоба Поделиться Опубликовано 7 Декабря 2009 Может лучше транслитератор сделать? $ru = explode(" ","'; ь ъ ` , [ ] < > ? / - = \\ е ё ж ч ш ю я а б в г д з и й к л м н о п р с т у ф х ц щ ы э"); $en = explode(" ","amp tzt mkz tvz udr zpt lkv pkv mns bls vps sls min rav osl je jo zh ch sh ju ja a b v g d z i j k l m n o p r s t u f h c w y e"); for($i=0;$i<count($en);$i++)$FILE_NAME = str_replace($ru[$i],$en[$i],$FILE_NAME); $FILE_NAME = preg_replace( "/[^a-zA-Z0-9-_\.]/", "", $FILE_NAME ); Как-то так... Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
0 Sannis Опубликовано 7 Декабря 2009 Жалоба Поделиться Опубликовано 7 Декабря 2009 $FILE_NAME = preg_replace( "/[^\w\.А-Яа-я]/", "_", $FILE_NAME );$FILE_NAME = preg_replace( "/[^\w\.А-ЯЁа-яё]/", "_", $FILE_NAME );Кто больше, блин. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
0 TOIIOP Опубликовано 7 Декабря 2009 Жалоба Поделиться Опубликовано 7 Декабря 2009 нет, тогда аттачи имеют вид _________..._________.mp3какое оригинальное название у тебя?Должно работать 100% Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
0 WildCat Опубликовано 8 Декабря 2009 Автор Жалоба Поделиться Опубликовано 8 Декабря 2009 к примеру, при имени "супердетка - пропаганда.mp3" на выходе имеем _________..._________.mp3при "пропаганда.mp3" - просто _________.mp3то бишь троеточие - это тире Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
0 TOIIOP Опубликовано 8 Декабря 2009 Жалоба Поделиться Опубликовано 8 Декабря 2009 хм, проверил у себя, нормально все) правда тире заменилось на нижнее подчеркивание, но это не критично.может быть влияет какая-то настройка сервера?.. на этот вопрос ответят только гуру ))) Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
0 WildCat Опубликовано 8 Декабря 2009 Автор Жалоба Поделиться Опубликовано 8 Декабря 2009 попробовал отдельный скриптик:[root@wh1 ~]# cat test2.php <?php $FILE_NAME = "test ТЕСТ"; $FILE_NAME = preg_replace( "/[^\w.]/", "_", $FILE_NAME ); print $FILE_NAME; ?> Результат:[root@wh1 ~]# php test2.php test_ТЕСТТ.е. скрипт отработал правильно, заменив пробел на _ и выведя русское слово.Почему ж это не работает на форуме... Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
0 Sannis Опубликовано 8 Декабря 2009 Жалоба Поделиться Опубликовано 8 Декабря 2009 У вас форум в юникоде, быть может? Вы setlocale делаете в index.php?(Независимые вопросы) Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
0 WildCat Опубликовано 8 Декабря 2009 Автор Жалоба Поделиться Опубликовано 8 Декабря 2009 1251 по поводу setlocale - это? default: if ( substr(PHP_OS, 0, 3) == 'WIN' ) { setlocale(LC_ALL, 'Russian_Russia.1251'); } else { setlocale(LC_ALL, 'ru_RU.CP1251'); } Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
0 autodiag Опубликовано 16 Февраля 2012 Жалоба Поделиться Опубликовано 16 Февраля 2012 Попробовал на 1.3final рецепт изложенный в постах 2 и 4. Стало правильно прописывать русские ЗАГЛАВНЫЕ буквы, но маленькие по-прежнему заменяются нижними прочерками. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
0 Arhar Опубликовано 18 Февраля 2012 Жалоба Поделиться Опубликовано 18 Февраля 2012 правильно - $FILE_NAME = preg_replace( "/[^a-zA-Z0-9а-яА-Я\-\.\_]/", "_", $FILE_NAME );ну и ё если хотите Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
0 autodiag Опубликовано 19 Февраля 2012 Жалоба Поделиться Опубликовано 19 Февраля 2012 (изменено) Отличий в результате не последовало. Почему же русские маленькие не прописываются? Что не пускает? Изменено 19 Февраля 2012 пользователем autodiag Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
0 Arhar Опубликовано 19 Февраля 2012 Жалоба Поделиться Опубликовано 19 Февраля 2012 неправильно настроена локаль Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
0 autodiag Опубликовано 18 Марта 2012 Жалоба Поделиться Опубликовано 18 Марта 2012 Исправить "локаль" это к хостеру обращаться, или в ведении клиента виртуального хостинга? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
0 Ph-A Опубликовано 18 Марта 2012 Жалоба Поделиться Опубликовано 18 Марта 2012 или в ведении клиента виртуального хостинга?Нет Но и хостер не захочет исправлять Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
0 FatCat Опубликовано 25 Марта 2012 Жалоба Поделиться Опубликовано 25 Марта 2012 http://lmgtfy.com/?q=setlocale+php Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Вопрос
WildCat
Бегло просмотрел - не заметил решения. Оно вообще есть? А то не совсем красиво выглядит:
Ссылка на комментарий
Поделиться на других сайтах
18 ответов на этот вопрос
Рекомендуемые сообщения
Присоединиться к обсуждению
Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.