Просмотр полной версии : Поиск в текстовой базе....
В текстовом документе есть около 100.000 слов, нужен скрипт который проводил бы поиск определенного слово или похожего слова.
Пример: Ищем слово "домофон"
Результат поиска:
домофон
дом
фон
Пример: ищём номер Icq: 348657695
Результат поиска:
348657696
348657685
348557695
338657695
348657695
BlackSun
02.09.2008, 15:51
нужен скрипт
...
$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);
находит слово с одной неверной буквой
аналогично для поиска асек:
$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);
еще для домофона:
$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);
А не проще ли...
$fp=file('стотыщъ.тхт');
foreach($fp AS $str) {
if ($str='двеститыщ') { echo("Есть такое слово..."); }}
А не проще ли...
$fp=file('стотыщъ.тхт');
foreach($fp AS $str) {
if ($str='двеститыщ') { echo("Есть такое слово..."); }}
вообщем D Mak реализовал ТС скрипт асечки по поиску асек)) :rolleyes:
Ch3ck ты что нужно сделать читал?
и ваще даже если по твоему можно проще
$fp=file('стотыщъ.тхт');
if(in_array($fp, 'двеститыщ')) echo "good :)"
)
Причем условие if ($str='двеститыщ') будет выполняться всегда
2TC лично для меня слова "мент" и "козел" очень созвучны, как ты предлагаешь искать настолько похожие слова?)
лично для меня слова "мент" и "козел"
А для меня ТС и ебло.
heretic1990
03.09.2008, 17:33
тоже мне мыслители, есть такой скипт!
EugineSearch v.1.0
Инструкция по установке и настройке:
Для установки и работы EugineSearch у Вас должен быть доступ к запуску
скриптов, написанных на PHP. Также крайне желательна возможность
редактирования файлов .htaccess!
* Распакуйте архив eusearch.zip в любой каталог на вашем диске и закачайте файлы на сервер.
* Поставьте права файлам
search.php - rw-r-r
admin.php - rw-r-r
settings.php - rw-rw-r
searchdat - rw-rw-r
ВСЕМ ОСТАЛЬНЫМ - rw-r-r
search.php - Файл в который и ищет все барохло для Ввашего сайта.
admin.php - Файл для Администратора, в нем задаются ключевые слова для поиска, а также адреса. Пароль по умолчанию admin, настоятельно рекомендую его сменить
settings.php - рабочие переменные
up.php - верхняя часть страницы (дизайн)
down.php - нижняя часть страницы (дизайн)
searchdat - Файл базы, где находяися имена и адреса ссылок
Измените дизайн для поисковой страницы добавив код HTML в файлы up.php и down.php, кстати в файле up.php стоит строчка
<title>EugineSearch - Результаты поиска <? print $zapros ?></title>
которая выводит в заголовке страницы что искал скрипт.
Вот форма для отправки поисковых запросов со страницы сайта
<form name=\"formsearch\" method=\"post\" action=\"search.php\">
<input type=\"hidden\" name=\"seenform\" value=\"y\">
Кого ищем:<BR>
<input type=\"text\" name=\"zapros\">
<HR size = '1' color '#000000'>
<input type=\"submit\" name=\"Submit\" value=\"Поиск!\"><BR></form>
пропишите в пункте action путь до Вашего скрипта на сервере.
За подробностями в асю 44600577
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot