Задача переместилась из рубрики "нужно для работы" в рубрику "любопытно".
Для работы не потребовались нечеткие вхождения, потребовалось исключить только полные совпадения слов не считая количества пробелов, знаков препинания и прочего. Одновременно понадобилась копия строки в транслите.
Сделал транслитератор с отбросом всего лишнего
PHP |
function ru2en($txt){ while stristr($txt, PHP_EOL)$txt = str_replace(PHP_EOL, " ", trim($txt)); while stristr($txt, " ")$txt = str_replace(" ", " ", $txt); $ru = explode(" ","е ё ж ч ш ю я а б в г д з и й к л м н о п р с т у ф х ц щ ы э"); $en = explode(" ","je jo zh ch sh ju ja a b v g d z i j k l m n o p r s t u f h c w y e"); for($i=0;$i<count($en);$i++)$txt = str_replace($ru[$i],$en[$i],$txt); $txt = str_replace(" / ","_i_",$txt); $txt = str_replace(" ","-",$txt); $txt = preg_replace( "/[^a-zA-Z0-9-_]/", "", $txt ); return $txt; } |
Теперь отбрасываю лишь точные совпадения транслитерированных строк.
Результат можно посмотреть
здесь.
Русские строки заливаются ботом из мода дарлингов, мне остается лишь в режиме премодерации разрешить к показу нащелканные ботом страницы.