Обработка строк. Как удалить РУС символы

EmelianovAnton

Новичок
Обработка строк. Как удалить РУС символы

Мастера! подскажите как удалить из строки руские символы.

например путь к файла:

$filename = "C:\Russian водка.jpg";
$filename = basename ($filename);

обработка имени файла
...
В рузельтате получаем имя

Russian.jpg


как это реализовать? немогу правильно настроить шаблон замены.
ПОдскажите дельный совет. или решение.
 

jonjonson

Охренеть
EmelianovAnton, даже если ты не знаешь регулярных выражений, то можешь решить свою задачу. Достаточно посимвольно перебрать строку и склеить из неё новую, где символы не содержаться в массиве русских букв. :)
 

Фанат

oncle terrible
Команда форума
EmelianovAnton
может, не удалить, а перевести в транслит?
а то ведь, если из одних русских букв название будет - от имени вообще ничего не останется
 

EmelianovAnton

Новичок
Автор оригинала: *****
EmelianovAnton
может, не удалить, а перевести в транслит?
Совершенно верно. Из несколькои возможных решений выбрал
использование md5(microtime()) для создания новых имён файлов.
канешно это не совсем рациональный подход но он работает.
результат можна пасматреть тут:

для тестов
http://www.ufamag.ru/bestimages/upload.php
 

Апокалипсис

тех дир matras.ru
EmelianovAnton
поищи есть готовые классы которые транслитируют всё что не попадя в читаемый транслит:)
з.ы вроди на dklab.ru видел подобное
 

ZigFreeD

Новичок
EmelianovAnton
Во первых... а что формат jpeg больше не ихображение? Нужно же помимо jpg добавить и jpeg :)
Во вторых...
использование md5(microtime()) для создания новых имён файлов
это же изврат в чистом виде!

поищи есть готовые классы которые транслитируют всё что не попадя в читаемый транслит
я сомневаюсь что ему тоже подойдет, т.к. у него всеже хранилище файлов... и если гиппотетически ктото загрузит два файла с одним именем, то он тупо заменит чьюто картинку :)


EmelianovAnton придумай лучше методику генерирования имен файлов последовательно... чтобы имена никогда не смогли повториться, и чтобы они не были такими... извратски длинными! да и в конце концов сделай идентификатор и выдавай через mod_rewrite... в этом случае твои имена гиппотетичски подойдут...
 

EmelianovAnton

Новичок
Почему это изврат. микротайм используют для отрытия сессия пользователей. микротайм используют для многих других целей.
безусловно найдётся более рациональное решение - дело времени.

-~{}~ 01.11.07 11:07:

я сомневаюсь что ему тоже подойдет, т.к. у него всеже хранилище файлов... и если гиппотетически ктото загрузит два файла с одним именем, то он тупо заменит чьюто картинку :)
не заменит. на то есть соответствующая проверка написанное до столкновения с проблемой русский имён ;)

if ( file_exists($iname) ) { ....... }

будем кумекать дальше )
 

Фанат

oncle terrible
Команда форума
Апокалипсис
готовый класс для одной-единственной функции strtr()?
от эти ваши похапе программисты какие затейники!

EmelianovAnton
вообще-то, транслитерация - это не создание хэша MD5, а написание латинскими буквами. Вместо Емельянов Антон - EmelianovAnton
 

asterisk

Новичок
EmelianovAnton
загружает но не показывает рисунок с названием "% а , б в г ! д _ % ~ ; & .jpg" :)
 

EmelianovAnton

Новичок
Автор оригинала: triumvirat
хороший класс - http://pixel-apes.com/translit
ужо давно всё перевёл.

завтра напишу javascript или php модуль для проверки на ввод полного пути к файлу.
и дам возможность пользователю ставить галочку если он хочет опубликовать файл в каталог (public альбом)
ну и сам каталог (public альбом) в виде простого списка ссылок(для начала). Хочу попробовать это реализовать
без использования mySQL. вот. работа продолжается >>>
 

EmelianovAnton

Новичок
да я незаметил чтовы вставили цитату и ответили на неё. думал вообще ответ на всю мессагу.
вечером уже глаза устают. :cool: а за обоснование спасибо.
 

Фанат

oncle terrible
Команда форума
лучше ты обоснуй, зачем собрался делать эту проверку

-~{}~ 01.11.07 22:54:

я лучше обосную, почему на яваскрипте эту проверку, если бы она была нужна, делать бессмысленно.
потому что яваскрипт нахордится на клиентской машине.
а клиент может делать со своей машиной все что захочет

-~{}~ 01.11.07 22:54:

никак не надо удалять
лучше поделиться соображениями и не бояться сказать глупость
 

EmelianovAnton

Новичок
мде. как вызвать функцию1 из другой функции2, внутри одного класса?

function userdir1(...)
{
..............
}


function proc2(....)
{

вызваю userdir1(...)
даёт ошибку
Fatal error: Call to undefined function: userdir() in part.class.php строка 130


..............
}
 

Фанат

oncle terrible
Команда форума
есть специальный синтаксис для обращения к свойствам и меодам одного класса.
очень странно, что он тебе не знаком. поскольку это первое, с чем сталкиваются даже просто читающие пхп код люди, никогда про слассы не слышавшие
 
Сверху