За последние 24 часа нас посетили 18468 программистов и 1618 роботов. Сейчас ищет 1671 программист ...

АА помогите, все сломалось.... срочно. горю.

Тема в разделе "PHP для новичков", создана пользователем nikit0ss, 28 ноя 2009.

  1. nikit0ss

    nikit0ss Активный пользователь

    С нами с:
    15 июл 2009
    Сообщения:
    17
    Симпатии:
    0
    В общем беда полная. :(( Не знаю в чем проблема. уже все глаза до дыр протер...

    Суть:
    У меня файл которые обрабатывает html форму.
    в нем так же есть функция ТРАНСЛИТА, (русских букв, на английские), для того что бы прикрепленные файлы, и их названия открывались в браузере.

    Вот код:

    PHP:
    1.  
    2. <?php
    3. function translateName($ruName)
    4. {
    5.     $ruName = strtolower($ruName);
    6.     $latin = '';
    7.  
    8.     for ($i=0;$i<strlen($ruName);$i++)
    9.     {
    10.         if (eregi('[а-я]',$ruName[$i]))
    11.         {
    12.             switch ($ruName[$i])
    13.             {
    14.                 case 'а': $latin.= 'a'; break;
    15.                 case 'б': $latin.= 'b'; break;
    16.                 case 'в': $latin.= 'v'; break;
    17.                 case 'г': $latin.= 'g'; break;
    18.                 case 'д': $latin.= 'd'; break;
    19.                 case 'е': $latin.= 'e'; break;
    20.                 case 'ё': $latin.= 'yo'; break;
    21.                 case 'ж': $latin.= 'zh'; break;
    22.                 case 'з': $latin.= 'z'; break;
    23.                 case 'и': $latin.= 'i'; break;
    24.                 case 'й': $latin.= 'j'; break;
    25.                 case 'к': $latin.= 'k'; break;
    26.                 case 'л': $latin.= 'l'; break;
    27.                 case 'м': $latin.= 'm'; break;
    28.                 case 'н': $latin.= 'n'; break;
    29.                 case 'о': $latin.= 'o'; break;
    30.                 case 'п': $latin.= 'p'; break;
    31.                 case 'р': $latin.= 'r'; break;
    32.                 case 'с': $latin.= 's'; break;
    33.                 case 'т': $latin.= 't'; break;
    34.                 case 'у': $latin.= 'u'; break;
    35.                 case 'ф': $latin.= 'f'; break;
    36.                 case 'х': $latin.= 'h'; break;
    37.                 case 'ц': $latin.= 'c'; break;
    38.                 case 'ч': $latin.= 'ch'; break;
    39.                 case 'ш': $latin.= 'sh'; break;
    40.                 case 'щ': $latin.= 'sch'; break;
    41.                 case 'ь': $latin.= 'y'; break;
    42.                 case 'ы': $latin.= 'y'; break;
    43.                 case 'ъ': $latin.= 'j'; break;
    44.                 case 'э': $latin.= 'e'; break;
    45.                 case 'ю': $latin.= 'yu'; break;
    46.                 case 'я': $latin.= 'ya'; break;
    47.                 default: $latin.= $ruName[$i]; break;
    48.             }
    49.         }
    50.         else
    51.         {
    52.             $latin .= $ruName[$i];
    53.         }
    54.     }
    55.     return $latin;
    56. }
    57. ?>
    58.  
    ТРАБЛА.

    У меня все работало, я дней 5 не че не делал, потом я тупо взял все скопировал (все файлы и базу) и перенес на другой сервер.

    И О боже.... транслит работает ЧАСТИЧНО.

    т.е. я когда этой формой пользуюсь, делаю там например, добавить файл.
    Выбираю файл с русским названием, Этот файл прикрепляеться но ПЕРВАЯ буква этого файла РУССКАЯ, че делатЬ?
     
  2. X-Antony

    X-Antony Активный пользователь

    С нами с:
    14 авг 2009
    Сообщения:
    11
    Симпатии:
    0
  3. nikit0ss

    nikit0ss Активный пользователь

    С нами с:
    15 июл 2009
    Сообщения:
    17
    Симпатии:
    0
    тогда наверное логически тупой вопрос, если он не работает с кирилицей. почему он ПЕРЕВОДИТ в ТРАНСЛИТ, все остальные буквы?
     
  4. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    PHP:
    1. <?php
    2. function translateName($ruName) {
    3.     $t = array(
    4.             'а'=>'a','б'=>'b','в'=>'v','г'=>'g','д'=>'d','е'=>'e','ё'=>'e','ж'=>'zh',
    5.             'з'=>'z','и'=>'i','й'=>'y','к'=>'k','л'=>'l','м'=>'m','н'=>'n','о'=>'o','п'=>'p','р'=>'r',
    6.             'с'=>'s','т'=>'t','у'=>'u','ф'=>'f','х'=>'h','ц'=>'ts','ч'=>'ch','ш'=>'sh','щ'=>'sch',
    7.             'ъ'=>'', 'ы'=>'yi','ь'=>'','э'=>'e','ю'=>'yu','я'=>'ya',
    8.             'А'=>'A','Б'=>'B','В'=>'V','Г'=>'G','Д'=>'D','Е'=>'E','Ё'=>'E','Ж'=>'ZH',
    9.             'З'=>'Z','И'=>'I','Й'=>'Y','К'=>'K','Л'=>'L','М'=>'M','Н'=>'N','О'=>'O','П'=>'P','Р'=>'R',
    10.             'С'=>'S','Т'=>'T','У'=>'U','Ф'=>'F','Х'=>'H','Ц'=>'TS','Ч'=>'CH','Ш'=>'SH','Щ'=>'SCH',
    11.             'Ъ'=>'', 'Ы'=>'YI','Ь'=>'','Э'=>'E','Ю'=>'YU','Я'=>'YA'
    12.         );
    13.     return strtr($ruName, $t );
    14. }
     
  5. nikit0ss

    nikit0ss Активный пользователь

    С нами с:
    15 июл 2009
    Сообщения:
    17
    Симпатии:
    0
    ААААААААААААААА
    бЛИИИН ваще спасибо просто выручили не мерено!!! я просто слов нет.! спасибо огроменнОе!!!
     
  6. Вльдемар

    Вльдемар Активный пользователь

    С нами с:
    20 май 2006
    Сообщения:
    635
    Симпатии:
    0
    Адрес:
    Белхород
    А может нужно попробовать локаль установить?
     
  7. Elkaz

    Elkaz Старожил
    Команда форума Модератор

    С нами с:
    26 июн 2006
    Сообщения:
    3.373
    Симпатии:
    0
    Адрес:
    Баку, Азербайджан
  8. mrbig66

    mrbig66 Активный пользователь

    С нами с:
    24 ноя 2009
    Сообщения:
    17
    Симпатии:
    0
    Адрес:
    msk
    А в какой кодировке сам скрипт сохранен и в какой кодировке туда попадают данные?