Помощник
|
Поиск по сайту по базе в текстовом файле |
oduvan4ik
|
Сообщение
#1
|
||
|
|
||
|
|||
ZiTosS |
19.8.2008, 2:17;
Ответить: ZiTosS
Сообщение
#2
|
|
Вы сначала определитьесь... Поиск по базе данных, поиск по текстовому файлу. Что вам именно нужно! Написать не проблема, только если файловая система, там будет всё зависеть от представления, что хранится и как...
|
|
|
oduvan4ik
|
Сообщение
#3
|
|
по текстовому файлу ... например название ссылки ( ну то есть сама ссылка ) и ее описание
|
|
|
ZiTosS |
19.8.2008, 20:28;
Ответить: ZiTosS
Сообщение
#4
|
|
Тогда щас напишем...
У нас будет файл base.txt вида ссылка_1|описание_1 ссылка_2|описание_2 .............................. ссылка_N|описание_N Файл поиска search.php [php]<?php function search_file($file, $search) // 1 - файл, 2 - искомая строка || ФУНКЦИЯ поиска { $file = file($file); $i = 0; $search_str = array(); foreach($file as $str) { $array = explode("|", $str); // Режем строку if(eregi($search, $array[1])) $search_str[] = $i; // Поиск по описанию $i++; } return search_str; } function print_search($file, $numbers) // Функция вывода { $file = file($file); foreach($numbers as $number) { $array = explode("|", $file[$number]); echo "Ссылка: ". $array[0] ."<br>"; echo "Описание: ". $array[1] ."<br>"; echo "<br><br>"; } } ?> <html> <head> <title>Поиск по файлу</title> </head> <body> <?php if(isset($_POST['submit'])) // Если нажата кнопка поиска { $file = "base.txt"; // Имя файла $search_array = array(); $search_array = search_file($file, $_POST['search']); // Поиск по файлу print_search($file, $search_array); // Вывод найденного } ?> Форма поиска <br> <form method="POST"> Найти: <input type="text" name="search"> <input type="submit" value="Поиск"> </body> </html>[/php] Не проверял, но вроде всё верно должно искать |
|
|
Liga-liga |
13.11.2008, 14:53;
Ответить: Liga-liga
Сообщение
#5
|
|
или так:
Файлик (назавем его index.txt): ссылка на файл|||||индекс страницы|||||Заголовок|||||описание|||||ключевые слова|||||время|||||номер||||| ...................... ссылка на файл|||||индекс страницы|||||Заголовок|||||описание|||||ключевые слова|||||время|||||номер||||| второй файлик (назавем его search.php) [php]<?php Error_Reporting(E_ALL & ~E_NOTICE); if ($search == "on") { function robot_parse_words ($words) { preg_match_all('/[^ ][^\"]?[\w][^\"]?[^ ]+?/Umix', $words, $m); if (!isset($m)) return ''; return ($m); } function robot_parse_rip ($index, $words) { $tempcount = count($words); if ($tempcount >= 2) { $lasts = $tempcount-1; $firstwords = $words[0]; $lastwords = $words[$lasts]; } else { $firstwords = $words[0]; $lastwords = $words[0]; } preg_match_all('/[^\']{0,30}[^\']?'.$firstwords.'+[^\']{0,30}?/Umix', $index, $m); if (!isset($m)) return ''; return ($m); } define("DOC_ROOT", dirname(__FILE__)); #создание списка слов $bdlindex = DOC_ROOT.'/index.txt'; $content = file("$bdlindex"); $words = robot_parse_words($text); foreach ($content as $key => $value) { foreach ($words[0] as $key2 => $value2) { if (preg_match("/$value2/i", $value)) { $searcha[$key] = $value; } else { unset($searcha[$key]); break; } } } $searcha = array_unique($searcha); foreach ($searcha as $key3 => $value3) { $tempbreak = explode("|||||", $value3); $link = $tempbreak[0]; $index = $tempbreak[1]; $title = $tempbreak[2]; $deskr = $tempbreak[3]; $meta = $tempbreak[3]; $index = robot_parse_rip($index, $words[0]); $seserss = count($index[0]); $massivsearc[] = array($index[0],$link,$title,$deskr,$meta,$seserss); } } ?> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1251"> <meta http-equiv="Content-Language" content="ru"> <title>Поисковик </title> </head> <html> <body> <form method="POST" action="search.php?search=on"> <input type="text" name="text" size="20" <?php if ($search == "on") { echo "value = \"$text\" "; } ?> > <input type="submit" value="Поиск" name="B1"> </form> <?php if ($search == "on") { echo "Результаты поиска по сайту: <br>"; echo "Вы искали: $text<br>"; $all = count($massivsearc); echo "Всего найдено страниц:$all <br><br>"; sort($massivsearc); foreach ($massivsearc as $key => $value) { $num = $key+1; $texts = $value[0][0]; $search = array("'>'", "'run_after_body\(\);'","'after_body\(\);'"); $replace = array(" ","",""); $texts = preg_replace($search,$replace,$texts); foreach ($words[0] as $key2 => $value2) { if (preg_match("/$value2/i", $texts)) { $search = array("/".$value2."/i"); $replace = array("<b>$value2</b>"); $texts = preg_replace($search,$replace,$texts); } } echo "<b>Номер: $num.</b> <a target=_blank href=www.сайт.ru/index.php$value[1]>......$texts.........</a><br>"; echo "$value[1]<br>"; echo "Совпадений на странице: $value[5]<br><br>"; } } ?> </body> </html>[/php] |
|
|
smaks |
3.7.2010, 10:24;
Ответить: smaks
Сообщение
#6
|
|
А как быть если метод POST не поддерживается хостером? Как сделать через GET
Переименовал .html в php нормально но не ищет не выводит из txt файла |
|
|
ZiTosS |
3.7.2010, 11:12;
Ответить: ZiTosS
Сообщение
#7
|
|
smaks, в вы уверены, что хостер поддерживает PHP? Что-то я никогда не видел хостера, который бы не поддерживал бы POST передачу данных, это же просто невыносимо, кидать надо таких хостеров.
И так, создайте в корне хоста файл primer.php с содержимым: [php]<?php phpinfo(); ?>[/php] Теперь набери в адресной строке _http://your-site.ru/primer.php , если в браузере отобразилась информация о версии PHP, о различных его настройках, о подключенных модулях, значит PHP работает нормально. Если же в браузер выдастся тот же код, что мы написали в файле, значит хостер не поддерживает PHP. |
|
|
smaks |
3.7.2010, 11:22;
Ответить: smaks
Сообщение
#8
|
|
Поддерживает Я зарегился на бесплатном хостинге с поддержкой php сделал базу в txt вида запись|описание закинул search.php в индекс вывел форму
POST стал поддерживаться когда index.html переименовал в .php но вводишь текст нажимаешь поиск и ни чего не происходит Что посоветуете |
|
|
ZiTosS |
3.7.2010, 23:14;
Ответить: ZiTosS
Сообщение
#9
|
|
smaks, покажите весь код, которым пользуетесь, содержимое текстового файла и по чему вы ищите? Надо искать по описанию. Конечно как написано, скрипт я не проверял, но вроде ошибок не вижу. Попробую после предоставления вами данных
|
|
|
gaaarfild |
5.7.2010, 11:27;
Ответить: gaaarfild
Сообщение
#10
|
|
|
Кстати, вставлю свою лепту. Все функции ereg в PHP 5.3 уже deprecated.
|
|
|
||
|
Похожие темы
Тема | Ответов | Автор | Просмотров | Последний ответ | |
---|---|---|---|---|---|
Требуется помощь по сайту на "ВордПресс" Закрылся доступ в панель администратора |
15 | Tia2 | 2346 | 17.4.2024, 0:54 автор: diviner99 |
|
Безанкорный прогон по базе 1600 000 сайтов из DMOZ | 44 | aleggator | 13748 | 10.3.2024, 18:29 автор: kuprum |
|
Статейное продвижение ваших сайтов по качественной базе с тИЦ тИЦ 10+ |
236 | Intersect | 257867 | 6.3.2024, 14:40 автор: ArchiDOM |
|
Нужна рассылка по емаил базе сео-студий | 0 | kasey7 | 682 | 2.3.2024, 23:13 автор: kasey7 |
|
Аукцион 5 трастовых сайтов. Продам сайты с ИКС, возраст более 4-х лет, с небольшим доходом, Аукцион на 5 сайтов раздельный по каждому сайту Аукцион на 5 сайтов раздельный по каждому сайту |
0 | rumiso | 1031 | 18.9.2022, 18:39 автор: rumiso |
Текстовая версия | Сейчас: 19.4.2024, 16:41 |