Нужен транслит

Статус
В этой теме нельзя размещать новые ответы.

limpopo

Гуру форума
Регистрация
31 Окт 2007
Сообщения
542
Реакции
84
Нужен скрипт или программа чтобы туда можно было ввести название фильма, а потом этот скрипт или программа выдавала транслит. типа Крепкий орешек после обработки krepkii_orechek
 
PHP:
<?php

function translit($ru_str) {

    $razd="_";
    $cyr_str=strtolower($ru_str);
    $tr =  array("А"=>"a","Б"=>"b","В"=>"v","Г"=>"g",               
    "Д"=>"d","Е"=>"e","Ж"=>"zh","З"=>"z","И"=>"i",               
    "Й"=>"y","К"=>"k","Л"=>"l","М"=>"m","Н"=>"n",               
    "О"=>"o","П"=>"p","Р"=>"r","С"=>"s","Т"=>"t",               
    "У"=>"u","Ф"=>"f","Х"=>"h","Ц"=>"c","Ч"=>"ch",               
    "Ш"=>"sh","Щ"=>"sch","Ъ"=>"","Ы"=>"y","Ь"=>"",               
    "Э"=>"e","Ю"=>"u","Я"=>"ya","а"=>"a","б"=>"b",               
    "в"=>"v","г"=>"g","д"=>"d","е"=>"e","ж"=>"zh",               
    "з"=>"z","и"=>"i","й"=>"y","к"=>"k","л"=>"l",               
    "м"=>"m","н"=>"n","о"=>"o","п"=>"p","р"=>"r",               
    "с"=>"s","т"=>"t","у"=>"u","ф"=>"f","х"=>"h",               
    "ц"=>"c","ч"=>"ch","ш"=>"sh","щ"=>"sch","ъ"=>"",               
    "ы"=>"y","ь"=>"","э"=>"e","ю"=>"u","я"=>"ya", " " => $razd); 
    $text= strtr($ru_str, $tr); 
    $text=preg_replace("/[^a-z0-9_ -]*/", "", $text);
    return $text;
}
$text = translit("Крепкий орешек");
echo $text;
?>
 
PHP:
function translit($ru_str) {

    $razd="_";
    $cyr_str=strtolower($ru_str);
    $tr =  array("А"=>"a","Б"=>"b","В"=>"v","Г"=>"g",               
    "Д"=>"d","Е"=>"e","Ж"=>"zh","З"=>"z","И"=>"i",               
    "Й"=>"y","К"=>"k","Л"=>"l","М"=>"m","Н"=>"n",               
    "О"=>"o","П"=>"p","Р"=>"r","С"=>"s","Т"=>"t",               
    "У"=>"u","Ф"=>"f","Х"=>"h","Ц"=>"c","Ч"=>"ch",               
    "Ш"=>"sh","Щ"=>"sch","Ъ"=>"","Ы"=>"y","Ь"=>"",               
    "Э"=>"e","Ю"=>"u","Я"=>"ya","а"=>"a","б"=>"b",               
    "в"=>"v","г"=>"g","д"=>"d","е"=>"e","ж"=>"zh",               
    "з"=>"z","и"=>"i","й"=>"y","к"=>"k","л"=>"l",               
    "м"=>"m","н"=>"n","о"=>"o","п"=>"p","р"=>"r",               
    "с"=>"s","т"=>"t","у"=>"u","ф"=>"f","х"=>"h",               
    "ц"=>"c","ч"=>"ch","ш"=>"sh","щ"=>"sch","ъ"=>"",               
    "ы"=>"y","ь"=>"","э"=>"e","ю"=>"u","я"=>"ya", " " => $razd); 
    $text= strtr($ru_str, $tr); 
    $text=preg_replace("/[^a-z0-9_ -]*/", "", $text);
    return $text;
}

И чего с этим кодом делать? создал php файлик с этим кодом открываю его - белая страница.
 
Это же функция, товарищ :) Чтоб она что-то показала нужно ее вызвать. Например так(вставить после/перед функцией:(
PHP:
$text = translit("Русский текст для транслита");
echo $text;
 
А в транслите вообще есть какие-то стандарты?
Например как будет правильно?
так:
krepkiy
или так:
krepkii
 
А в транслите вообще есть какие-то стандарты?
Например как будет правильно?
так:
krepkiy
или так:
krepkii

если всмотрется выше то видно что правильно будет krepky

я лично юзаю вот такие правила
 
Вообще все равно как будет транслит правильно или не правильно надо просто быстро переименновывать название фильмов в латиницу. Что нет таких программок или скриптов?
 
Для тех, кто в танке:
PHP:
<?php
header('Content-Type:text/plain; charset=UTF-8');

$file_in = "ru_movies.txt"; // Your input file
$file_out = "tr_movies.txt"; // Your output file

// Open and read the file with Russian movies
$fn = fopen($file_in, "r");
while (!feof($fn)) {
  $content .= fgets($fn);
}
fclose($fn);

// Translit everything
$new_content = translit($content);

// Write to Translit file
$fn = fopen($file_out, "w");
fwrite($fn, $new_content);
fclose($fn);

// GG function
function translit($ru_str) {
    $razd="_";
    $cyr_str=strtolower($ru_str);
    $tr =  array("А"=>"a","Б"=>"b","В"=>"v","Г"=>"g",               
    "Д"=>"d","Е"=>"e","Ж"=>"zh","З"=>"z","И"=>"i",               
    "Й"=>"y","К"=>"k","Л"=>"l","М"=>"m","Н"=>"n",               
    "О"=>"o","П"=>"p","Р"=>"r","С"=>"s","Т"=>"t",               
    "У"=>"u","Ф"=>"f","Х"=>"h","Ц"=>"c","Ч"=>"ch",               
    "Ш"=>"sh","Щ"=>"sch","Ъ"=>"","Ы"=>"y","Ь"=>"",               
    "Э"=>"e","Ю"=>"u","Я"=>"ya","а"=>"a","б"=>"b",               
    "в"=>"v","г"=>"g","д"=>"d","е"=>"e","ж"=>"zh",               
    "з"=>"z","и"=>"i","й"=>"y","к"=>"k","л"=>"l",               
    "м"=>"m","н"=>"n","о"=>"o","п"=>"p","р"=>"r",               
    "с"=>"s","т"=>"t","у"=>"u","ф"=>"f","х"=>"h",               
    "ц"=>"c","ч"=>"ch","ш"=>"sh","щ"=>"sch","ъ"=>"",               
    "ы"=>"y","ь"=>"","э"=>"e","ю"=>"u","я"=>"ya", " " => $razd); 
    $text= strtr($ru_str, $tr); 
    return $text;
}

?>
Названия фильмов должны быть в файле в одной папке со скриптом и называться ru_movies.txt - 1 фильм на строчку.
После работы скрипта на экран ничего не выводится - результат работы сохраняется в файл tr_movies.txt в ту же папку.

Добавлено через 15 минут
А в транслите вообще есть какие-то стандарты?

Да. Старый — ГОСТ 16876-71 и более свежий ISO 9-95.

PHP:
$gost = array(
   "Є"=>"EH","І"=>"I","і"=>"i","№"=>"#","є"=>"eh",
   "А"=>"A","Б"=>"B","В"=>"V","Г"=>"G","Д"=>"D",
   "Е"=>"E","Ё"=>"JO","Ж"=>"ZH",
   "З"=>"Z","И"=>"I","Й"=>"JJ","К"=>"K","Л"=>"L",
   "М"=>"M","Н"=>"N","О"=>"O","П"=>"P","Р"=>"R",
   "С"=>"S","Т"=>"T","У"=>"U","Ф"=>"F","Х"=>"KH",
   "Ц"=>"C","Ч"=>"CH","Ш"=>"SH","Щ"=>"SHH","Ъ"=>"'",
   "Ы"=>"Y","Ь"=>"","Э"=>"EH","Ю"=>"YU","Я"=>"YA",
   "а"=>"a","б"=>"b","в"=>"v","г"=>"g","д"=>"d",
   "е"=>"e","ё"=>"jo","ж"=>"zh",
   "з"=>"z","и"=>"i","й"=>"jj","к"=>"k","л"=>"l",
   "м"=>"m","н"=>"n","о"=>"o","п"=>"p","р"=>"r",
   "с"=>"s","т"=>"t","у"=>"u","ф"=>"f","х"=>"kh",
   "ц"=>"c","ч"=>"ch","ш"=>"sh","щ"=>"shh","ъ"=>"",
   "ы"=>"y","ь"=>"","э"=>"eh","ю"=>"yu","я"=>"ya","«"=>"","»"=>"","—"=>"-"
  );

$iso = array(
   "Є"=>"YE","І"=>"I","Ѓ"=>"G","і"=>"i","№"=>"#","є"=>"ye","ѓ"=>"g",
   "А"=>"A","Б"=>"B","В"=>"V","Г"=>"G","Д"=>"D",
   "Е"=>"E","Ё"=>"YO","Ж"=>"ZH",
   "З"=>"Z","И"=>"I","Й"=>"J","К"=>"K","Л"=>"L",
   "М"=>"M","Н"=>"N","О"=>"O","П"=>"P","Р"=>"R",
   "С"=>"S","Т"=>"T","У"=>"U","Ф"=>"F","Х"=>"X",
   "Ц"=>"C","Ч"=>"CH","Ш"=>"SH","Щ"=>"SHH","Ъ"=>"'",
   "Ы"=>"Y","Ь"=>"","Э"=>"E","Ю"=>"YU","Я"=>"YA",
   "а"=>"a","б"=>"b","в"=>"v","г"=>"g","д"=>"d",
   "е"=>"e","ё"=>"yo","ж"=>"zh",
   "з"=>"z","и"=>"i","й"=>"j","к"=>"k","л"=>"l",
   "м"=>"m","н"=>"n","о"=>"o","п"=>"p","р"=>"r",
   "с"=>"s","т"=>"t","у"=>"u","ф"=>"f","х"=>"x",
   "ц"=>"c","ч"=>"ch","ш"=>"sh","щ"=>"shh","ъ"=>"",
   "ы"=>"y","ь"=>"","э"=>"e","ю"=>"yu","я"=>"ya","«"=>"","»"=>"","—"=>"-"
  );
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху