[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Подсветка текста в поисковом запросе
Гость_Олег
Здравствуйте гуру PHP подскажите как можно сделать подсветку искомого слова в тексте в результате поиска:

поиск осуществляю при помощи MATCH() AGAINST() в результате мне выводится список статей где встречается поисковый запрос, но вот как выделить это слово фоновым цветом не могу придумать. Я так думаю что надо при нахождении этого слова надо обромлять его в тег SPAN со стилем но как это сделать, или может есть какой небудь другой способ?

Заранее спасибо!




Спустя 7 минут, 39 секунд (24.11.2010 - 20:18) Nikitian написал(а):

Спустя 1 час, 26 минут, 50 секунд (24.11.2010 - 21:45) Гость_Олег написал(а):
Эт конечно хорошо что конкурс и все такое, но нельзя как не будь проше, там неизвестно когда все закончится, может кто может помочь?

Спустя 3 минуты, 13 секунд (24.11.2010 - 21:48) Игорь_Vasinsky написал(а):
может так ?

str_replace($_POST['искомое_слово'],"<b>".$_POST['искомое_слово']."</b>", "текст в котором ищешь");

Спустя 4 минуты, 3 секунды (24.11.2010 - 21:53) Игорь_Vasinsky написал(а):
но это тока для слова, для фразы необходимо разбить поисковый запрос в массив например.

Спустя 17 часов, 30 минут, 53 секунды (25.11.2010 - 15:23) Гость_Олег написал(а):
Чет немного недопонял как все зделать. Вот мой код как использовать эту функцию str_replace

if (isset($_POST['search'])) {$search = $_POST['search']; }


$result = mysql_query("SELECT * FROM data WHERE MATCH(title) AGAINST('$search') OR MATCH(text) AGAINST('$search') OR MATCH(description) AGAINST('$search')",$db);

if (!$result) {echo exit(mysql_error());}
if (mysql_num_rows($result) > 0)
{
$temp = mysql_num_rows($result);
$myrow = mysql_fetch_array($result);
echo "<br/><p style=' margin-left:30px;'> По вашему запросу: <span style='color:#39739d;'><b>$search</b></span>. Найдено <span style='color:#39739d;'><b>$temp</b></span> результатов.</p><br/>";
do
{
printf ("<table align='center' class='post4'>
<tr>
<td class='post_title'><p class = 'post_name'><a href='view_post.php?id=%s'>%s</a></p></td>
</tr>
<tr>
<td>%s <p class ='post_view'>Просмотров: <b>%s</b>     Рейтинг: <img src='img/%s.gif'></p></td>
</tr>
</table><br><br>"
, $myrow["id"], $myrow["title"], $myrow["description"], $myrow["view"]);


}
while ($myrow = mysql_fetch_array($result));

Спустя 9 минут, 48 секунд (25.11.2010 - 15:33) Гость_Олег написал(а):
Я так понял надо обработать $myrow["description"]
вот так
$temp1 = str_replace($search,"<span style='background-color:#cc0000;'>".$search."</span>", "$myrow[description]");


и потом в
printf заменить $myrow["description"]  на $temp1
но чета не работает

Спустя 17 минут, 11 секунд (25.11.2010 - 15:50) Гость_Олег написал(а):
Все добрые люди я понял, единственно как сделать так что бы искомое слово не учитывала регистр?

Спустя 1 час, 25 минут, 4 секунды (25.11.2010 - 17:15) inpost написал(а):
В начале лечимся от Попова:
[URL=http://phpforum.ru/index.php?showtopic=32799'>http://phpforum.ru/index.php?showtopic=32799</a>
http://phpforum.ru/index.php?showtopic=21916

Далее:
Если хочешь правильно, жди результатов конкурса. Работы принимаются до 5-ого декабря, после будет открыт публичный доступ к ним, до нового года конкурс будет проведён и выберены лучшие работы, там можешь и посмотреть, как надо.

Сам вопрос:
str_ireplace - Независимо от регистра. С другой стороны он будет заменять на это же слово но уже в том регистре, на который ты меняешь, а не в том, который был до этого. Именно поэтому приходится работать с регуляркой. preg_replace. Более подробно о регулярках на irbis-team.com & http://www.phpclub.ru/detail/article/regexp_1

Спустя 1 час, 38 минут, 57 секунд (25.11.2010 - 18:54) Гость_Олег написал(а):
кое как сделал все работает, но далеко не идеально... Буду ждать конца конкурса.

Спустя 3 дня, 18 часов, 40 минут, 4 секунды (29.11.2010 - 13:34) Изучающий PHP по инету написал(а):
Цитата (inpost @ 25.11.2010 - 14:15)
В начале лечимся от Попова:

Вас жаба душит за Жеку.
Он отдал, что узнал другим, а вы шкеретесь! tongue.gif

Спустя 53 минуты, 18 секунд (29.11.2010 - 14:28) Basili4 написал(а):

Изучающий PHP по инету

Цитата (Изучающий PHP по инету @ 29.11.2010 - 14:34)
Он отдал, что узнал другим

Правду говорят Россия страна идиотов.

1. Не отдал а продал
2. Не что узнал а сто списал и выдал за свое.
3. Даже не проработал то что списал.




Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.