В текстовом документе есть около 100.000 слов, нужен скрипт который проводил бы поиск определенного слово или похожего слова. Пример: Ищем слово "домофон" Результат поиска: домофон дом фон Пример: ищём номер Icq: 348657695 Результат поиска: 348657696 348657685 348557695 338657695 348657695
PHP: $str = "matc1 matc2 matc3 matcd"; $search_str = "match"; $matches = array(); for($i=0; $i<strlen($search_str); $i++) { $temp_str = $search_str; $temp_str[$i] = "."; $search_regexp = "#".$temp_str."#i"; preg_match_all($search_regexp, $str, $m); $matches = array_merge($matches, $m[0]); } print_r($matches); находит слово с одной неверной буквой аналогично для поиска асек: PHP: $str = "21232 11231 11111"; $search_str = "21231"; $matches = array(); for($i=0; $i<strlen($search_str); $i++) { $temp_str = $search_str; $num = $temp_str[$i]; $b_num = $num-1; $e_num = $num+1; $temp_str = substr($temp_str, 0, $i)."[".$b_num."-".$e_num."]".substr($temp_str, $i+1); $search_regexp = "#".$temp_str."#i"; preg_match_all($search_regexp, $str, $m); $matches = array_merge($matches, $m[0]); } print_r($matches); еще для домофона: PHP: $str = "дом фон домофон гггг"; $search_str = "домофон"; $m2 = array(); for($i=0; $i<strlen($search_str)-2; $i++) { $temp_str = substr($search_str, $i, 3); $search_regexp = "#[^ ]*".$temp_str."[^ *]*#i"; echo $search_regexp."<br>"; preg_match_all($search_regexp, $str, $m); $m2 = array_merge($matches, $m[0]); } $matches = array_unique($m2); //избавляемся от повторов print_r($matches);
А не проще ли... PHP: $fp=file('стотыщъ.тхт'); foreach($fp AS $str) { if ($str='двеститыщ') { echo("Есть такое слово..."); }}
Ch3ck ты что нужно сделать читал? и ваще даже если по твоему можно проще PHP: $fp=file('стотыщъ.тхт'); if(in_array($fp, 'двеститыщ')) echo "good :)" )
Причем условие if ($str='двеститыщ') будет выполняться всегда 2TC лично для меня слова "мент" и "козел" очень созвучны, как ты предлагаешь искать настолько похожие слова?)