[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Нужна помощь - скрипт конвертации кириллицы в латиницу
DVN
Вот скрипт для конвертации из кириллицы в латиницу, пробовал запустить его на localhost, не работает, нашел ошибки в коде такие как:
Цитата
case "Э":
echo ""E";
break;

скрипт перестал выводить ошибки и стал исполняться, но проблема в том, что исполняться то он исполняется, а вот текст не конвертирует, а отображается только
Код
Спасибо за использование сервиса !


Помогите разобраться.

Код
<FORM ACTION="trans.php" METHOD="GET">

<TEXTAREA TYPE="text" NAME="str" COLS=50 ROWS=10  WRAP=virtual>
Текст до 500 знаков </TEXTAREA>

<INPUT TYPE="Submit" VALUE="Перевести !" >

</FORM>


Код
<?php

echo "<html> ";  

echo "<head> ";  

echo "<meta http-equiv=\"Content-Type\" content=\"text/html;
charset=windows-1251\"> ";  

echo "</head> ";  

echo "<body> ";  

echo "<P><center><BR>

Конвертация русского текста, написанного русским

шрифтом в русский текст, написанный латинским

шрифтом (из кириллицы в латиницу).

</p>";

echo "<b>";

echo "<blockquote>";

$mm=strlen($str);

for ($i=0;$i<=$mm;$i++)
{
$ss=$str[$i];

switch ($ss)

{
  
case "щ":
        echo "sch";
        break;

case "ч":
        echo "ch";
        break;

case "ш":
        echo "sh";
        break;

case "я":
        echo "ja";
        break;

case "ю":
        echo "ju";
        break;

case "ё":
        echo "jo";
        break;

case "ж":
        echo "zh";
        break;

case "э":
        echo ""e";
        break;

case "Щ":
        echo "Sch";
        break;

case "Ч":
        echo "Ch";
        break;

case "Ш":
        echo "Sh";
        break;

case "Я":
        echo "Ja";
        break;

case "Ю":
        echo "Ju";
        break;

case "Ё":
        echo "Jo";
        break;

case "Ж":
        echo "Zh";
        break;

case "Э":
        echo ""E";
        break;

case "ь":
        echo """;
        break;

case "ъ":
        echo "'";
        break;

case "а":
        echo "a";
        break;

case "б":
        echo "b";
        break;

case "ц":
        echo "c";
        break;

case "д":
        echo "d";
        break;

case "е":
        echo "e";
        break;

case "ф":
        echo "f";
        break;

case "г":
        echo "g";
        break;
case "х":
        echo "h";
        break;

case "и":
        echo "i";
        break;

case "й":
        echo "j";
        break;

case "к":
        
     {

        if ($str[$i+1]=="с" ) {
       echo "x";  
       $i=$i+1; break;}

        echo "k";
        break;

       }

case "л":
        echo "l";
        break;

case "м":
        echo "m";
        break;
case "н":
        echo "n";
        break;
case "о":
        echo "o";
        break;
case "п":
        echo "p";
        break;

case "р":
        echo "r";
        break;

case "с":
        echo "s";
        break;

case "т":
        echo "t";
        break;

case "у":
        echo "u";
        break;

case "в":
        echo "v";
        break;

case "ы":
        echo "y";
        break;

case "з":
        echo "z";
        break;

case "Ь":
        echo "'";
        break;

case "Ъ":
        echo "'";
        break;

case "А":
        echo "A";
        break;

case "Б":
        echo "B";
        break;

case "Ц":
        echo "C";
        break;

case "Д":
        echo "D";
        break;

case "Е":
        echo "E";
        break;

case "Ф":
        echo "F";
        break;

case "Г":
        echo "G";
        break;

case "Х":
        echo "H";
        break;

case "И":
        echo "I";
        break;

case "Й":
        echo "J";
        break;

case "К":
    
     {

      if ($str[$i+1]=="С" ) {
       echo "X";  
       $i=$i+1; break;}

      if ($str[$i+1]=="с" ) {
       echo "X";  
       $i=$i+1; break;}

      echo "K";
       break;

       }

case "Л":
        echo "L";
        break;

case "М":
        echo "M";
        break;

case "Н":
        echo "N";
        break;

case "О":
        echo "O";
        break;

case "П":
        echo "P";
        break;
  
case "Р":
        echo "R";
        break;

case "С":
        echo "S";
        break;

case "Т":
        echo "T";
        break;

case "У":
        echo "U";
        break;

case "В":
        echo "V";
        break;

case "Ы":
        echo "Y";
        break;

case "З":
        echo "Z";
        break;

default:
        echo $ss;

  }

}
    

echo "</b><br><br>";

echo "</blockquote>";

echo "<P><center>Спасибо за использование
сервиса !</center></p>";

echo "</body> ";  

echo "</html> ";  

?>




Спустя 23 минуты, 8 секунд (11.04.2008 - 00:17) Adil написал(а):
Проверь этот код будет работать???:


Код
<?php

echo "<html> ";  

echo "<head> ";  

echo "<meta http-equiv=\"Content-Type\" content=\"text/html;
charset=windows-1251\"> ";  

echo "</head> ";  

echo "<body> ";  

echo "<P><center><BR>

Конвертация русского текста, написанного русским

шрифтом в русский текст, написанный латинским

шрифтом (из кириллицы в латиницу).

</p>";

echo "<b>";


echo "<blockquote>";

$mm=strlen($str);


for ($i=0;$i<=$mm;$i++)
{@$ss=$str[$i];

switch ($ss)

{

  
case "щ":
        echo "sch";
        break;

case "ч":
        echo "ch";
        break;

case "ш":
        echo "sh";
        break;

case "я":
        echo "ja";
        break;

case "ю":
        echo "ju";
        break;

case "ё":
        echo "jo";
        break;

case "ж":
        echo "zh";
        break;


case "э":
        echo "e";
        break;

case "Щ":
        echo "Sch";
        break;

case "Ч":
        echo "Ch";
        break;

case "Ш":
        echo "Sh";
        break;

case "Я":
        echo "Ja";
        break;

case "Ю":
        echo "Ju";
        break;

case "Ё":
        echo "Jo";
        break;


case "Ж":
        echo "Zh";
        break;

case "Э":
        echo "E";
        break;

case "ь":

        echo "\"";
        break;


case "ъ":

        echo "'";
        break;

case "а":
        echo "a";
        break;

case "б":
        echo "b";
        break;

case "ц":
        echo "c";
        break;

case "д":
        echo "d";
        break;


case "е":
        echo "e";
        break;

case "ф":
        echo "f";
        break;

case "г":
        echo "g";
        break;
case "х":
        echo "h";
        break;

case "и":
        echo "i";
        break;

case "й":
        echo "j";
        break;

case "к":
        
     {

        if ($str[$i+1]=="с" ) {
       echo "x";  
       $i=$i+1; break;}

        echo "k";
        break;


       }


case "л":
        echo "l";
        break;

case "м":
        echo "m";
        break;
case "н":
        echo "n";
        break;
case "о":
        echo "o";
        break;
case "п":
        echo "p";
        break;

case "р":
        echo "r";
        break;

case "с":
        echo "s";
        break;

case "т":
        echo "t";
        break;

case "у":
        echo "u";
        break;

case "в":
        echo "v";
        break;

case "ы":
        echo "y";
        break;

case "з":
        echo "z";
        break;

case "Ь":
        echo "'";
        break;

case "Ъ":
        echo "'";
        break;

case "А":
        echo "A";
        break;

case "Б":
        echo "B";
        break;

case "Ц":
        echo "C";
        break;

case "Д":
        echo "D";
        break;

case "Е":
        echo "E";
        break;

case "Ф":
        echo "F";
        break;

case "Г":
        echo "G";
        break;

case "Х":
        echo "H";
        break;

case "И":
        echo "I";
        break;

case "Й":
        echo "J";

        break;

case "К":
    
     {


      if ($str[$i+1]=="С" ) {
       echo "X";  
       $i=$i+1; break;}

      if ($str[$i+1]=="с" ) {
       echo "X";  
       $i=$i+1; break;}

      echo "K";
       break;

       }

case "Л":
        echo "L";
        break;

case "М":
        echo "M";
        break;

case "Н":
        echo "N";
        break;

case "О":
        echo "O";
        break;

case "П":
        echo "P";
        break;
  
case "Р":
        echo "R";
        break;

case "С":
        echo "S";
        break;

case "Т":
        echo "T";
        break;

case "У":
        echo "U";
        break;

case "В":
        echo "V";
        break;

case "Ы":
        echo "Y";
        break;

case "З":
        echo "Z";
        break;

default:
        echo $ss;

  }

}
    

echo "</b><br><br>";

echo "</blockquote>";

echo "<P><center>Спасибо за использование
сервиса !</center></p>";

echo "</body> ";  

echo "</html> ";  

?>

Спустя 7 часов, 51 минута, 56 секунд (11.04.2008 - 08:09) disc написал(а):
Вот вам функция для удобного перевода, будет работать быстрее чем описанная выше с циклом и switch'ем.
Код
print translitString('Строка')

Код
<?php

  // функция перевода текста с кириллицы в транслит

  function translitString($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;

  }

?>

Спустя 13 часов, 38 минут, 22 секунды (11.04.2008 - 21:48) DVN написал(а):
Цитата
Проверь этот код будет работать???:
не реботает выводится пустая страница и как обычно:
Цитата
Спасибо за использование сервиса !

Цитата
Вот вам функция для удобного перевода, будет работать быстрее чем описанная выше с циклом и switch'ем.

Как правильно отправить нужный мне текст, для обработки вашим скриптом? Если через ту форму которая указана у меня, то так же выводится пустая страница!?

Спустя 39 минут, 14 секунд (11.04.2008 - 22:27) Adil написал(а):
Вот этот код попробуй, потому пожалуй дело у тебя в выключенном register_globals:

Код
<?php

echo "<html> ";  

echo "<head> ";  

echo "<meta http-equiv=\"Content-Type\" content=\"text/html;
charset=windows-1251\"> ";  

echo "</head> ";  

echo "<body> ";  

echo "<P><center><BR>

Конвертация русского текста, написанного русским

шрифтом в русский текст, написанный латинским

шрифтом (из кириллицы в латиницу).

</p>";

echo "<b>";


echo "<blockquote>";

$mm=strlen($_GET['str']);


for ($i=0;$i<=$mm;$i++)
{@$ss=$_GET['str'][$i];

switch ($ss)

{

  
case "щ":
        echo "sch";
        break;

case "ч":
        echo "ch";
        break;

case "ш":
        echo "sh";
        break;

case "я":
        echo "ja";
        break;

case "ю":
        echo "ju";
        break;

case "ё":
        echo "jo";
        break;

case "ж":
        echo "zh";
        break;


case "э":
        echo "e";
        break;

case "Щ":
        echo "Sch";
        break;

case "Ч":
        echo "Ch";
        break;

case "Ш":
        echo "Sh";
        break;

case "Я":
        echo "Ja";
        break;

case "Ю":
        echo "Ju";
        break;

case "Ё":
        echo "Jo";
        break;


case "Ж":
        echo "Zh";
        break;

case "Э":
        echo "E";
        break;

case "ь":

        echo "\"";
        break;


case "ъ":

        echo "'";
        break;

case "а":
        echo "a";
        break;

case "б":
        echo "b";
        break;

case "ц":
        echo "c";
        break;

case "д":
        echo "d";
        break;


case "е":
        echo "e";
        break;

case "ф":
        echo "f";
        break;

case "г":
        echo "g";
        break;
case "х":
        echo "h";
        break;

case "и":
        echo "i";
        break;

case "й":
        echo "j";
        break;

case "к":
        
     {

        if ($_GET['str'][$i+1]=="с" ) {
       echo "x";  
       $i=$i+1; break;}

        echo "k";
        break;


       }


case "л":
        echo "l";
        break;

case "м":
        echo "m";
        break;
case "н":
        echo "n";
        break;
case "о":
        echo "o";
        break;
case "п":
        echo "p";
        break;

case "р":
        echo "r";
        break;

case "с":
        echo "s";
        break;

case "т":
        echo "t";
        break;

case "у":
        echo "u";
        break;

case "в":
        echo "v";
        break;

case "ы":
        echo "y";
        break;

case "з":
        echo "z";
        break;

case "Ь":
        echo "'";
        break;

case "Ъ":
        echo "'";
        break;

case "А":
        echo "A";
        break;

case "Б":
        echo "B";
        break;

case "Ц":
        echo "C";
        break;

case "Д":
        echo "D";
        break;

case "Е":
        echo "E";
        break;

case "Ф":
        echo "F";
        break;

case "Г":
        echo "G";
        break;

case "Х":
        echo "H";
        break;

case "И":
        echo "I";
        break;

case "Й":
        echo "J";

        break;

case "К":
    
     {


      if ($_GET['str'][$i+1]=="С" ) {
       echo "X";  
       $i=$i+1; break;}

      if ($_GET['str'][$i+1]=="с" ) {
       echo "X";  
       $i=$i+1; break;}

      echo "K";
       break;

       }

case "Л":
        echo "L";
        break;

case "М":
        echo "M";
        break;

case "Н":
        echo "N";
        break;

case "О":
        echo "O";
        break;

case "П":
        echo "P";
        break;
  
case "Р":
        echo "R";
        break;

case "С":
        echo "S";
        break;

case "Т":
        echo "T";
        break;

case "У":
        echo "U";
        break;

case "В":
        echo "V";
        break;

case "Ы":
        echo "Y";
        break;

case "З":
        echo "Z";
        break;

default:
        echo $ss;

  }

}
    

echo "</b><br><br>";

echo "</blockquote>";

echo "<P><center>Спасибо за использование
сервиса !</center></p>";

echo "</body> ";  

echo "</html> ";  

?>

Спустя 1 час, 21 минута, 49 секунд (11.04.2008 - 23:49) DVN написал(а):
Nezabivaemiy, большое тебе человеческое спасибо! Глобалс действительно был выключен, но зато получился скрипт работаюший в более безопасном режиме.

Спустя 9 месяцев, 9 дней, 19 часов, 11 минут, 2 секунды (21.01.2009 - 20:00) Guest написал(а):
disc Спасибо Вам Огромное!! Как раз то, что искал user posted image

Спустя 1 час, 13 минут, 55 секунд (21.01.2009 - 21:14) twin написал(а):
Вообще оба варианта имеют существенные недостатки. Первый уж очень громоздок и долг, а второй не будет работать под utf.
Вот если нужно кому нибудь ещё, примерно так:
PHP
<?php 
       
function encodestring($st


$arr = array( 
'А' => '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'
'Ю' => 'JU'
'Я' => 'JA'
'а' => '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'
'ю' => 'ju'
'я' => 'ja'
); 
$key array_keys($arr);
$val array_values($arr);
$transl str_replace($key,$val,$st ); 

    return 
nl2br(htmlspecialchars($transl)); 

echo (isset(
$_POST['ok']) && isset($_POST['text']))?encodestring($_POST['text']):"Транслитерация";

?>
<form action="?" method="post"> 
<textarea name="text" cols="40" rows="10"  />
</textarea> 
<input name="ok" type=

Спустя 6 месяцев, 8 дней, 16 часов, 53 минуты, 53 секунды (30.07.2009 - 13:08) Staind написал(а):
2twin, мега респект за решение^^

Спустя 5 месяцев, 21 день, 6 минут, 27 секунд (21.01.2010 - 14:14) Адрей написал(а):
народ помогите, как в хтмл это можно всунуть моя ася 13-12-12-2 заранее спс

Спустя 8 дней, 1 час, 31 минута, 13 секунд (29.01.2010 - 15:45) Евгений написал(а):
disc, Спасибо! То, что нужно!

Спустя 2 минуты, 34 секунды (29.01.2010 - 15:48) Гость_Николай написал(а):
пример использования на komarichi.ru
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.