![]() |
Показаны 1 сообщений на этой странице |
Форум сетевых администраторов (http://netadmin.ws/forum/index.php)
- PHP (http://netadmin.ws/forum/forumdisplay.php?forumid=6)
-- Маленький Google на своём сайте (http://netadmin.ws/forum/showthread.php?threadid=7859)
Маленький Google на своём сайте
Из формы 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> ).
$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;
__________________
Кирилл
| Формат времени GMT. Текущее время 15:20. | Показаны 1 сообщений на этой странице |
Powered by: vBulletin Version 2.2.4
Copyright © Jelsoft Enterprises Limited 2000, 2001.