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


Автор: savmp 13.12.2010, 12:26
Подскажите как можно реализовать скрипт, транскрипция слов в английские символы при загрузке файла?

То есть к примеру на сайт загружается фотография с именем Фото.jpg как сделать так чтобы произошла транскрипция имени файла и фотография сохранилась с именемъ
FOTO.JPG в верхнем реестре?

Подскажите.

Автор: enoff 13.12.2010, 12:35
Код

$filename = str_ireplace(array("а", "б", "в", "г"), array("A", "B", "V", "G"), $filename);

Автор: The_Aleksey 13.12.2010, 17:10
Код

function translit($str)
{   
$table=array(
    "а" => "a", "б" => "b", "в" => "v", "г" => "g", "д" => "d", "е" => "e", "ё" => "yo",
    "ж" => "zh", "з" => "z", "и" => "i", "й" => "y", "к" => "k", "л" => "l", "м" => "m",
    "н" => "n", "о" => "o", "п" => "p", "р" => "r", "с" => "s", "т" => "t", "у" => "u",
    "ф" => "f", "х" => "h", "ц" => "c", "ч" => "ch", "ш" => "sch", "щ" => "sh", "ъ" => "",
    "ы" => "y", "ь" => "", "э" => "e", "ю" => "yu", "я" => "ya",
    "А" => "A", "Б" => "B", "В" => "V", "Г" => "G", "Д" => "D", "Е" => "E", "Ё" => "YO",
    "Ж" => "ZH", "З" => "Z", "И" => "I", "Й" => "Y", "К" => "K", "Л" => "L", "М" => "M",
    "Н" => "N", "О" => "O", "П" => "P", "Р" => "R", "С" => "S", "Т" => "T", "У" => "U",
    "Ф" => "F", "Х" => "H", "Ц" => "C", "Ч" => "CH", "Ш" => "SCH", "Щ" => "SH", "Ъ" => "",
    "Ы" => "Y", "Ь" => "", "Э" => "E", "Ю" => "YU", "Я" => "YA"
);
$str=strtr($str, $table);
// если нужно сразу, чтобы в верхнем регистре выдавало, то еще $str = strtoupper($str);
return $str;
}


Ну и вызывать примерно так:
Код

if(!empty($_FILES['foto']['name']))
{
copy($_FILES['foto']['tmp_name'], translit($_FILES['foto']['name']));
}

Автор: Crusaderr 15.12.2010, 10:36
не далее чем вчера нашел такой рабочий пример:

Код

function encodestring($st)

  {

    // Сначала заменяем "односимвольные" фонемы.

    $st=strtr($st,"абвгдеёзийклмнопрстуфхъыэ_",

    "abvgdeeziyklmnoprstufh'iei");

    $st=strtr($st,"АБВГДЕЁЗИЙКЛМНОПРСТУФХЪЫЭ_",

    "ABVGDEEZIYKLMNOPRSTUFH'IEI");

    // Затем - "многосимвольные".

    $st=strtr($st, 

                    array(

                        "ж"=>"zh", "ц"=>"ts", "ч"=>"ch", "ш"=>"sh", 

                        "щ"=>"shch","ь"=>"", "ю"=>"yu", "я"=>"ya",

                        "Ж"=>"ZH", "Ц"=>"TS", "Ч"=>"CH", "Ш"=>"SH", 

                        "Щ"=>"SHCH","Ь"=>"", "Ю"=>"YU", "Я"=>"YA",

                        "ї"=>"i", "Ї"=>"Yi", "є"=>"ie", "Є"=>"Ye"

                        )

             );

    // Возвращаем результат.
 
    return $st;

  }

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