За последние 24 часа нас посетили 20407 программистов и 1092 робота. Сейчас ищут 849 программистов ...

Улучшить функцию

Тема в разделе "PHP для новичков", создана пользователем Hovik, 25 мар 2020.

  1. Hovik

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

    С нами с:
    22 окт 2018
    Сообщения:
    89
    Симпатии:
    0
    Привет всем, хочу улучшить одну функцию и полагаюсь на вашу помощь.
    функция принимает два аргумента lang и uri хочу убрать lang чтобы язык выбиралось автоматически + для каждой букв.
    PHP:
    1. function replace_lang_uri( $lang, $uri ){
    2.     $uri_part = preg_split('//u', $uri, NULL, PREG_SPLIT_NO_EMPTY);
    3.  
    4.     $ru =[
    5.         'а' => 'a','б' => 'b','в' => 'v','г' => 'g','д' => 'd','е' => 'e','ж' => 'j',
    6.         'з' => 'z','и' => 'i','й' => 'i','к' => 'k','л' => 'l','м' => 'm','н' => 'n',
    7.         'о' => 'o','п' => 'p','р' => 'r','с' => 's','т' => 't','у' => 'u','ф' => 'f',
    8.         'х' => 'gh','ц' => 'ch','ч' => 'che','ш' => 'she','щ' => 'she','ъ' => '','ы' => '',
    9.         'ь' => '','э' => 'e','ю' => 'yu','я' => 'ya',' ' => '-',
    10.     ];
    11.     $hy =[
    12.         'ա' => 'a','բ' => 'b','գ' => 'g','դ' => 'd','ե' => 'e','զ' => 'z','է' => 'e',
    13.         'ը' => '','թ' => 'th','ժ' => 'jh','ի' => 'i','լ' => 'l','խ' => 'x','ծ' => 'ch',
    14.         'կ' => 'k','հ' => 'h','ձ' => 'dz','ղ' => 'gh','ճ' => 'che','մ' => 'm','յ' => 'y',
    15.         'ն' => 'n','շ' => 'she','ո' => 'vo','չ' => 'che','պ' => 'p','ջ' => 'j','ռ' => 'r',
    16.         'ս' => 's','վ' => 'v','տ' => 't','ր' => 'r','ց' => 'c','փ' => 'ph','ք' => 'q',
    17.         'և' => 'ev','օ' => 'o','ֆ' => 'f',' ' => '-',
    18.     ];
    19.  
    20.     return str_replace( array_keys($$from), $$from, $uri );
    21. }
    22.  
    23.  
    24.  
    25. echo replace_lang_uri('ru', 'приветլպ');
     
  2. Hovik

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

    С нами с:
    22 окт 2018
    Сообщения:
    89
    Симпатии:
    0
  3. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.734
    Симпатии:
    1.315
    Адрес:
    Лень
    PHP:
    1. return strtr ( $uri, ${$lang} ?? [] );
     
  4. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.548
    Симпатии:
    1.754
    Так убери, он здесь нафиг не нужен. Объедини оба массива в один. У массива не должны повторяться ключи - они и не будут, а значения вполне себе могут повторяться
     
  5. Hovik

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

    С нами с:
    22 окт 2018
    Сообщения:
    89
    Симпатии:
    0
    Спасибо вам