X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость ( Вход | Регистрация )

Открыть тему
Тема закрыта
> Поиск по сайту по базе в текстовом файле
oduvan4ik
oduvan4ik
Topic Starter сообщение 15.8.2008, 21:25; Ответить: oduvan4ik
Сообщение #1


Кто нибудь знает или может есть у кого скрипт поиска по сайту по базе в текстовом файле ???
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZiTosS
ZiTosS
сообщение 19.8.2008, 2:17; Ответить: ZiTosS
Сообщение #2


Вы сначала определитьесь... Поиск по базе данных, поиск по текстовому файлу. Что вам именно нужно! Написать не проблема, только если файловая система, там будет всё зависеть от представления, что хранится и как...
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
oduvan4ik
oduvan4ik
Topic Starter сообщение 19.8.2008, 19:23; Ответить: oduvan4ik
Сообщение #3


по текстовому файлу ... например название ссылки ( ну то есть сама ссылка ) и ее описание
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZiTosS
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
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
smaks
сообщение 3.7.2010, 10:24; Ответить: smaks
Сообщение #6


А как быть если метод POST не поддерживается хостером? Как сделать через GET

Переименовал .html в php нормально но не ищет не выводит из txt файла
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZiTosS
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
smaks
сообщение 3.7.2010, 11:22; Ответить: smaks
Сообщение #8


Поддерживает Я зарегился на бесплатном хостинге с поддержкой php сделал базу в txt вида запись|описание закинул search.php в индекс вывел форму
POST стал поддерживаться когда index.html переименовал в .php но вводишь текст нажимаешь поиск и ни чего не происходит

Что посоветуете
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZiTosS
ZiTosS
сообщение 3.7.2010, 23:14; Ответить: ZiTosS
Сообщение #9


smaks, покажите весь код, которым пользуетесь, содержимое текстового файла и по чему вы ищите? Надо искать по описанию. Конечно как написано, скрипт я не проверял, но вроде ошибок не вижу. Попробую после предоставления вами данных
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
gaaarfild
gaaarfild
сообщение 5.7.2010, 11:27; Ответить: gaaarfild
Сообщение #10


Кстати, вставлю свою лепту. Все функции ereg в PHP 5.3 уже deprecated.

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Горячая тема (нет новых ответов) Тема имеет прикрепленные файлыСтатейное продвижение ваших сайтов по качественной базе с тИЦ
тИЦ 10+
212 Intersect 147379 27.11.2020, 20:37
автор: Intersect
Опрос (нет новых голосов) Опрос: Сколько дроп доменов можно максимально приклеить к основному сайту?
Дроп домены
34 WGN 1902 17.11.2020, 12:59
автор: WGN
Открытая тема (нет новых ответов) Google рассказал, как асессоры влияют на внедрение изменений в поиск
8 VinogradOFF 971 10.11.2020, 14:44
автор: NetsvetaeVV
Открытая тема (нет новых ответов) Тема имеет прикрепленные файлыЯ Вам тексты, Вы мне работы по сайту
1 Shelley 200 28.10.2020, 13:49
автор: Telnor
Открытая тема (нет новых ответов) Ищу человека для написания статей к сайту
18 Feliz888 1464 25.10.2020, 14:02
автор: Avast


 



RSS Текстовая версия Сейчас: 2.12.2020, 3:34
Дизайн