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



 

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

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


Новичок
*

Группа: User
Сообщений: 45
Регистрация: 19.7.2008
Поблагодарили: 0 раз
Репутация:   0  


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


Ваша совесть
*******

Группа: User
Сообщений: 5148
Регистрация: 18.2.2008
Из: Нижний Новгород
Поблагодарили: 0 раз
Репутация:   8  


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


Новичок
*

Группа: User
Сообщений: 45
Регистрация: 19.7.2008
Поблагодарили: 0 раз
Репутация:   0  


по текстовому файлу ... например название ссылки ( ну то есть сама ссылка ) и ее описание
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZiTosS
ZiTosS
сообщение 19.8.2008, 20:28; Ответить: ZiTosS
Сообщение #4


Ваша совесть
*******

Группа: User
Сообщений: 5148
Регистрация: 18.2.2008
Из: Нижний Новгород
Поблагодарили: 0 раз
Репутация:   8  


Тогда щас напишем...
У нас будет файл 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


Новичок
*

Группа: User
Сообщений: 8
Регистрация: 13.11.2008
Поблагодарили: 0 раз
Репутация:   0  


или так:
Файлик (назавем его 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


Новичок
*

Группа: User
Сообщений: 2
Регистрация: 3.7.2010
Поблагодарили: 0 раз
Репутация:   0  


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

Переименовал .html в php нормально но не ищет не выводит из txt файла
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZiTosS
ZiTosS
сообщение 3.7.2010, 11:12; Ответить: ZiTosS
Сообщение #7


Ваша совесть
*******

Группа: User
Сообщений: 5148
Регистрация: 18.2.2008
Из: Нижний Новгород
Поблагодарили: 0 раз
Репутация:   8  


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


Новичок
*

Группа: User
Сообщений: 2
Регистрация: 3.7.2010
Поблагодарили: 0 раз
Репутация:   0  


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

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


Ваша совесть
*******

Группа: User
Сообщений: 5148
Регистрация: 18.2.2008
Из: Нижний Новгород
Поблагодарили: 0 раз
Репутация:   8  


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


Завсегдатай
*****

Группа: User
Сообщений: 596
Регистрация: 5.1.2009
Из: Казань
Поблагодарили: 0 раз
Репутация:   0  


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

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


Свернуть

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

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Ищу человека для написания статей к сайту
18 Feliz888 1315 25.10.2020, 14:02
автор: Avast
Открытая тема (нет новых ответов) Тема имеет прикрепленные файлыЯ Вам тексты, Вы мне работы по сайту
0 Shelley 114 16.10.2020, 14:24
автор: Shelley
Горячая тема (нет новых ответов) Тема имеет прикрепленные файлыСтатейное продвижение ваших сайтов по качественной базе с тИЦ
37 Intersect 8066 16.10.2020, 14:17
автор: Intersect
Горячая тема (нет новых ответов) Тема имеет прикрепленные файлыСтатейное продвижение ваших сайтов по качественной базе с тИЦ
тИЦ 10+
209 Intersect 144614 15.10.2020, 20:52
автор: Intersect
Открытая тема (нет новых ответов) Горячая линия «Почты России» подключила голосового помощника на базе технологий «Яндекса»
4 VinogradOFF 208 12.10.2020, 22:33
автор: VinogradOFF


 



RSS Текстовая версия Сейчас: 27.10.2020, 15:32
Дизайн