ФорумПрограммированиеPHP для идиотов → преобразование url

преобразование url

  • Josh

    Сообщения: 2008 Репутация: N Группа: Кто попало

    Spritz 12 декабря 2008 г. 17:45

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

    text = "Это Мой первый Блог"
    url = eto_moy_perviy_blog

    или всё таки лёгкого выхода нет и надо строить таблицу преобразований? Просто сайт многоязычный вплоть до немецкого, русского, французкого, итальянского и прочей лабуды
  • md5

    Сообщения: 11960 Репутация: N Группа: в ухо

    Spritz 12 декабря 2008 г. 17:48, спустя 3 минуты 13 секунд

    на js я делаю так
    function Translit(str)
    {
    var mapRu = "а,б,в,г,д,е,ё,ж,з,и,й,к,л,м,н,о,п,р,с,т,у,ф,х,ц,ч,ш,щ,ъ,ы,ь,э,ю,я, " . split(",");
    var mapRuBig = "А,Б,В,Г,Д,Е,Ё,Ж,З,И,Й,К,Л,М,Н,О,П,Р,С,Т,У,Ф,Ч,Ц,Ч,Ш,Щ,Ъ,Ы,Ь,Э,Ю,Я, " . split(",");
    var mapEn = "a,b,v,g,d,e,e,zh,z,i,y,k,l,m,n,o,p,r,s,t,u,f,h,ts,ch,sh,sch,,i,,e,yu,ya,-" . split(",");

    var s = str;

    for(i = 0; i < mapRu.length; ++i) {
    while (s.indexOf(mapRu) >= 0) {
    s = s.replace(mapRu, mapEn);
    }
    }

    for(i = 0; i < mapRuBig.length; ++i) {
    while (s.indexOf(mapRuBig) >= 0) {
    s = s.replace(mapRuBig, mapEn);
    }
    }

    s = s.replace(/[^a-z0-9_-]/ig, '');

    return (s);
    }


    на php:
    function translit($text)
    {
    $text = strtolower($text);
    $artist=$text;
    for ($i = ord('а'); $i <= ord('я'); $i++)
    {
    $big=$i-32;
    $russian[]=chr($i);
    $russian_big[]=chr($big);
    }
    $russian[]=chr(ord('ё'));
    $russian_big[]=chr(ord('Ё'));
    //$russian[]=' ';
    //$russian_big[]=' ';
    array_push($russian, " ", "-","/","+",",","(",")","\"");
    array_push($russian_big, " ", "-","/","+",",","(",")","\"");


    $english = array ('a','b','v','g','d','e','zh','z','i','i','k','l','m','n','o','p','r','s','t','u','f','h','c','ch',
    'sh','sh','','y','','e','yu','ya','yo','_','_','_','','_','_','','','');


    $artist_translit = str_replace($russian, $english, $artist);
    $artist_translit = str_replace($russian_big, $english, $artist_translit);
    $artist_translit = strtolower($artist_translit);

    $artist_translit = preg_replace("#[^a-z0-9-_\.]#i", "", $artist_translit);

    return $artist_translit;
    }
    все умрут, а я изумруд
  • Josh

    Сообщения: 2008 Репутация: N Группа: Кто попало

    Spritz 12 декабря 2008 г. 17:54, спустя 5 минут 25 секунд

    так не годитсо. я же говорю - языков до чёртка, и каким именно языком человек напишет я знать не могу
  • md5

    Сообщения: 11960 Репутация: N Группа: в ухо

    Spritz 12 декабря 2008 г. 17:55, спустя 1 минуту 44 секунды


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

    Сообщения: 2008 Репутация: N Группа: Кто попало

    Spritz 12 декабря 2008 г. 17:59, спустя 4 минуты 13 секунд



    так не годитсо. я же говорю - языков до чёртка, и каким именно языком человек напишет я знать не могу
    ааа.а.. пропустил
    ну х.з., смотри какой язык по заголовкам и выбирай разные массивы и всё
    В каком смысле по заголовкам? Скажем в нимецком слово SOMEWORD может иметь совсем другое значение чем в английском, так что тут просто так не попадёшь
  • Professor

    Сообщения: 2089 Репутация: N Группа: Адекваты

    Spritz 12 декабря 2008 г. 18:04, спустя 4 минуты 52 секунды

    А на русском оставить?
    только мазила не корректно воспринимает, все остальные норм.
    Это решает все вопросы и человеку удобней.
  • Professor

    Сообщения: 2089 Репутация: N Группа: Адекваты

    Spritz 12 декабря 2008 г. 18:05, спустя 1 минуту

    Хотя с некоторыми языками могут быть проблеммы
  • Josh

    Сообщения: 2008 Репутация: N Группа: Кто попало

    Spritz 12 декабря 2008 г. 18:11, спустя 5 минут 58 секунд

    по тз нельзя. мне надо ссылку вида {module}/{transliterated_text}-{database_id}.html
    Блин - башню свернуть можно. чтож делать? А если ещё китайским вводить иероглифы начнут? о0
  • Josh

    Сообщения: 2008 Репутация: N Группа: Кто попало

    Spritz 12 декабря 2008 г. 18:20, спустя 8 минут 56 секунд

    Мде… наверное тему не туда пхнул если никто не может ответить :( Бля а шож делать?


    ФРИЕНД
    :-)
    17:11:20 гоу

    17:11:46 Josh
    куда го?

    17:11:52 ФРИЕНД
    пиво

    17:12:00 Josh
    не рановато ещё

    17:12:04 ФРИЕНД
    :-(

    17:12:10 Josh
    чувак как мне транслитерацию сделать?

    17:12:15 ФРИЕНД
    ?

    17:12:18 Josh
    вот тогда можна го
    17:12:36 короче надо бля сделать урл вида {module}/{transliterated_text}-{database_id}.html
    17:12:58 тока блять я не могу знать на каком языке этот ебучий {transliterated_text}
    17:13:12 понял фичу?

    17:13:16 ФРИЕНД
    да
    17:13:22 а ты захуяч массив из символов каждого языка
    17:13:46 и в зависимости от языка - пихай туда анг буквы

    17:14:28 Josh
    бляяяя издеваешься? я на баш шас это выложу. мне и китайский пихнуть туда? о0 этож сцуко UTF-8!!!!!!!

    17:14:47 ФРИЕНД
    ну - тада х его….


    17:14:57 Josh
    сцуко… :(


  • Trej Gun

    Сообщения: 5305 Репутация: N Группа: в ухо

    Spritz 12 декабря 2008 г. 18:24, спустя 3 минуты 27 секунд

    Josh, гуглом переводи http://mabp.kiev.ua/content/2008/08/28/google_translate/
  • Josh

    Сообщения: 2008 Репутация: N Группа: Кто попало

    Spritz 12 декабря 2008 г. 18:46, спустя 21 минуту 51 секунду

    Блин такое ощущение что комуто тупо посты нужны ррррррррррррррррррррррррр.
    $from='ru', $to='en'
  • Josh

    Сообщения: 2008 Репутация: N Группа: Кто попало

    Spritz 12 декабря 2008 г. 19:08, спустя 22 минуты 16 секунд

    Хоть сервис какой-то есть в инете? Скажем при регистрации ходить туда и забивать в базу
  • Trej Gun

    Сообщения: 5305 Репутация: N Группа: в ухо

    Spritz 12 декабря 2008 г. 22:36, спустя 3 часа 27 минут 50 секунд

    Josh, если ты хотел меня обидеть то у тебя вышло

    если первым параметром поставить "auto", а вторым "en" то нормально все будет
  • NRG

    Сообщения: 4761 Репутация: N Группа: в ухо

    Spritz 13 декабря 2008 г. 0:16, спустя 1 час 40 минут

    CTAPbIu_MABP, не бери так все близко к сердцу…
  • Trej Gun

    Сообщения: 5305 Репутация: N Группа: в ухо

    Spritz 13 декабря 2008 г. 0:23, спустя 7 минут 31 секунду

    бугагаг))) Энергетик, ты то должен знать что я прикалываюсь, ты видел мои бешеные глаза)))

Пожалуйста, авторизуйтесь, чтобы написать комментарий!