Блог старого компьютера

Блог старого компьютера


Главная PHP Функция замены символов введенных в не той раскладке клавиатуры PHP

Функция замены символов введенных в не той раскладке клавиатуры PHP

17.02.2013 17:18 Администратор PHP
Печать PDF
Я практически уверен что кажды из нас когда либо начинал писать строки на не той расскладке клавиатуры, и когда это уже замечал глубоко вдохнув стирал это все и начинал заново, передернув раскладку клавиатуры, в худшем случае ситуация повторялась. Сейчас даже есть специальные программы которые анализируют текст и автоматически переключают раскладку клавиатуры. Даже поисковые системы уже автоматически переводят непонятный набор символов в нормальную фразу и выдают по ней результат. В программе qip даже есть комбинация клавиш которая приведет текст к нормальному виду. Ну а чем хуже мы?

Давайте и у себя на сайте сделаем такую возможность, ввел в не той расскладке, а мы ему правильный результат поиска.

Может это и кажется сложно, но на самом деле все даже проще чем с транслитом.

Будем делать так:

  1. Ввел информмацию в форму, если в ответ ничего не найдено переводим функцией каракули в текст (если конечно они каракули) и повторяем в срипте поиск уже по новому запросу.
  2. Можно так же проверить регуляркой какие символы ввел в форму пользователь русские либо английские и автоматически запускать функцию обработки введенных данных, но тут есть небольшое "НО", а вдруг пользователь ввел в форму поиска английскую информацию (к примеру ищет на вашем сайте программу opera, а вы ему подсунете щзукф)

Так что использовать будем первый способ, проверять сначала есть ли результаты по тому что ввели, если нет то обрабатыват данные функцией.

Сообственно перейдем уже от теории к практике. Вот моя функция для перевода абракадабры в русский читаемый текст с примером использования:

function right_letter($str){
$array = array( "q"=>"й", "w"=>"ц", "e"=>"у", "r"=>"к",
"t"=>"е", "y"=>"н", "u"=>"г", "i"=>"ш", "o"=>"щ",
"p"=>"з", "["=>"х", "]"=>"ъ", "a"=>"ф", "s"=>"ы",
"d"=>"в", "f"=>"а", "g"=>"п", "h"=>"р", "j"=>"о",
"k"=>"л", "l"=>"д", ";"=>"ж", "'"=>"э", "z"=>"я",
"x"=>"ч", "c"=>"с", "v"=>"м", "b"=>"и", "n"=>"т",
"m"=>"ь", ","=>"б", "."=>"ю");
$right_letter = strtr($str,$array);
return $right_letter;
}

echo right_letter('z hf,jnfk b levfk j, jlyjv');

Результатом работы этого примера будет надпись "я работал и думал об одном" что сообственно говорит о том что функция работает и имеет право быть.

Далее планирую доработать этой функцией компонент поиска для движка joomla.

 

Добавить комментарий


Защитный код
Обновить

Поиск

Голосование

Что Вы думаете на счет битрикса?
 

Все материалы раздела