Главная :: Форум :: Web ClipArt :: Поиск :: Статистика :: Топ 10 :: Публикация :: Рекомендовать
netadmin.ws
Панель управления Регистрция свободна! Календарь Список пользователей Часто задаваемые вопросы Поиск по форуму Архив скриптов Главная   
Форум сетевых администраторов
Форум сетевых администраторов Форум сетевых администраторов » Программирование » PHP » Маленький Google на своём сайте
Предыдущая тема     Следующая тема
Автор
Тема    Новая тема     Ответить на эту тему
Kirill_M
Участник
Средний рейтинг: 5 | Оценок: 1

Зарегистрирован: Mar 2003
Место проживания: Москва
Публикаций: 70
Статус: Kirill_M в оф-лайне
Маленький Google на своём сайте [сообщение #60985]

Из формы search в файл search.php приходит переменная $query, содержащая в себе слово или фразу для поиска в MySQL-базе в одном из выбранных полей.

В поле query формы могут быть введены слова в нижнем, верхнем или смешанном регистре.

Из поля title или text или из обоих берём содержимое этих полей и ищем в них вхождения $query. Ð_езультатом поиска является построение странички на подобие Google, Yandex и других поисковых систем: найденное в заголовке или тексте странички слово выделяется другим цветом (красным, например).

Требуется на страничку выводить не весь текст, имеющийся в поле text, а только само слово (или идущие вместе слова, если ищется вся фраза), а также 25 знаков до него и 25 знаков после него.

Например:

$query = "тест";

Из базы берём содержимое поля text.

Затем нам нужно найти вхождение $query, вырезать из основного текста искомое слово (фразу), добавить с двух сторон по 25 символов текста ($num_chars) и выделить $query цветом (<font color="red"><b>$query</b></font> ).

PHP:


$num_chars 
= 25; 
$find_text = $find['text'];
$find_text = substr($find_text,0,$num_chars); 
if (
strlen($find_text) >= $num_chars) {
$find_text = substr($find_text,0,strrpos($find_text," "));
$find_text = $find_text . "..."; } 
$find_text = preg_replace("'$query'i", "<font color="red"><b>$query</b></font>", "$find_text");

echo 
$find_text;


Должно выводиться:
<font color="red"><b>Тест</b></font>овая страничка с текстом для <font color="red"><b>тест</b></font>а, который нужен для проверки...

Отточия "..." должны добавляться только в конце вырезанной фразы.

В приведённом выше примере происходит обрезание текста от нулевой позиции до 25-го символа, после чего добавляются "...".

Также при замене слова (фразы) в тексте на значение $query происходит изменение регистра этого слова (фразы) в соответствии с тем, как это слово (фраза) были написаны в поле query формы search.

Нужно решить задачу:
1) не менять регистр выделенных слов в выводимом как результат поиска тексте;
2) сделать добавление 25 символов до и после найденного слова (фразы), учитывая, что в обрабатываемом тексте $find_text может быть много вхождений $query; все вхождения должны быть выведены на страничку как результат поиска (выводить единой строкой);
3) нужно посчитать количество вхождений $query для обрабатываемого текста $find_text - результат подсчёта в переменной $find_text_stat.

В таблице содержится более 500 строк с полями id, title, text, filename (это путь от корня сайта и имя файла).

Сайт на статических html-страничках, перевод его целиком на php пока не планируется.

Kirill_M добавил 14-02-2004 в 03:29:06:
И ещё вопрос: есть ли у кого декодированный файл LEMMSERV.DLL (входит в состав YandexSite Lite 2.5), в котором содержится около 90000 слов для реализации морфологического поиска в русском тексте.

__________________
Кирилл

Сообщение было отредактировано Kirill_M 14-02-2004 в 03:48

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 14-02-2004 03:24
Нажмите сюда для просмотра профайла Kirill_M Отправить Персональное сообщение Kirill_M Найти сообщения от Kirill_M Добавить Kirill_M в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя



Формат времени GMT. Текущее время 15:20.
Новая тема   Ответить на эту тему [ Версия для печати Печать | Отправить эту страницу другу/знакомому! Отправить | Получать уведомления об обновлении этой темы Подписка ] Предыдущая тема     Следующая тема
Навигация по форуму:
Оценка темы:

Правила форума:
Вы не можете создавать новые темы.
Вы не можете отвечать на существующие темы.
Вы не можете прикреплять файлы.
Вы не можете редактировать свои сообщения.
HTML теги выкл.
Спец. код вкл.
Смайлики вкл.
[IMG] тег выкл.
 

Page generated in 0.19388509 seconds (95.69% PHP - 4.31% MySQL) with 26 queries.


  Главная :: Форум :: Web ClipArt :: Поиск :: Статистика :: Топ 10 :: Публикация :: Рекомендовать
©NetAdmin.ws, 2001-2026.
Powered by: vBulletin
Copyright ©2000, 2001, Jelsoft Enterprises Limited.