Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wyswietlanie wyników wyszukiwania
Forum PHP.pl > Forum > PHP
kociou1
Witam.

Projektuje wyszukiwarkę na stronę i chciałbym żeby prezentowała wyniki mniej więcej tak jak google, czyli podświetlone wyszukiwane słowo/słowa lub fraza (z tym nie mam problemu) otoczone kilkoma wyrazami tak jak np. tu: http://www.google.pl/search?as_q=sklep+zab...&as_sitesearch=

Niestety nie wiem jak wyciągnąć pasującą do wzorca część stringu wraz z np. trzema - czterema otaczającymi wzorzec wyrazami.

liczę na jakieś sugestie i bądź podpowiedzi
Pigula
moze za pomoca str_replace()
poprostu slowo kluczowe zamienia na
  1. <span class="podswietlenie">slowo kluczowe</span>

i musisz sobie zdefiniowac tylko podswietlenie w css.
kociou1
Cytat
czyli podświetlone wyszukiwane słowo/słowa lub fraza (z tym nie mam problemu) otoczone kilkoma wyrazami

Zdaje się że trochę niejasno się wyraziłem. Otóż z podświetleniem tekstu oczywiście nie ma najmniejszego problemu.
Głównie chodzi o to jak wyciągnąć ze stringa te kilka słów otaczających szukaną frazę smile.gif
Apo
No to po to jest str_repace.
  1. <?php
  2. /// instrukcje
  3.  
  4. $tytul = str_replace($ciągzformularza, '<b>'.$ciągzformularza.'</b>', $tytul);
  5. ?>


//// EDIT
A już chyba wiem o co ci chodzi. Kod:
  1. <?php
  2. /// instrukcje
  3. $fraza = explode(' ', $ciągzformularza);
  4.  
  5. $cnt = count($fraza);
  6. for($i=0; $i<$cnt; $i++)
  7. {
  8. $tytul = str_replace($fraza[$i], '<b>'.$ciągzformularza.'</b>', $tytul);
  9. }
  10. ?>

cos takiego winksmiley.jpg
Wave
  1. <?
  2. $szukane = 'bla';
  3. $teskt = 'abcc abc abc abc abc abc abc bla abc abc acb acb abc abc abcc';
  4. preg_match("#((([^ ]*)?s){0,3})(" . $szukane . ")((s([^ ]*)?){0,3})#s", $teskt, $wynik);
  5. echo $wynik[1] . '<b>' . $wynik[4] . '</b>' . $wynik[5];
  6. ?>

Wyświetli $szukane oraz 3 wyrazy przed i za $szukane.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.