Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Wyszukiwarka podanego tekstu w serwisie www
Forum PHP.pl > Forum > Przedszkole
cent4
Witam - jak mam zrobić wyszukiwarkę podanych tekstów na stronie. Podaję np. tekst "Microsoft" i dostaję odpowiedź że znalazł na 2 podstronach?
Zosiek
http://forum.php.pl/index.php?showtopic=119927&hl=
Ale musisz użyć funkcji explode(), i potem dla każdego w pętli wyszukiwać i wyświetlać (ile razy to dowiesz się z array_count_values() zaraz postawionej po explode())

Edit:
Jednak zmieniłem to biggrin.gif
tutaj masz kod (możesz go zmodyfikować bo jest trochę zakręcony biggrin.gif (wtedy zaczynałem przygodę z PHP i się bawiłem zęby ustawić ten explode() biggrin.gif)
  1. <?php
  2. //Otrzymujemy dane
  3. $sortowanie = $_POST['sort'];
  4. $phrase1 = $_POST['phrase1'];
  5. $phrase2 = explode(" ",$phrase1);
  6.  
  7.  
  8. //Formularz
  9. echo '<form method="post" name="search" action="search.php">'
  10. .'<p><input type="text" value="'.$phrase1.'" name="phrase1" size="22" />'
  11. .'  <select name="sort">'
  12. .'<option value="1"'; if($sort==1){echo ' selected="selected"'; } echo '>Sortuj: rosn?co </option>'
  13. .'<option value="0"'; if($sort==0){echo ' selected="selected"'; } echo '>Sortuj: malej?co </option>'
  14. .'</select>'
  15. .'  <input type="submit" value="Szukaj"/></p>'
  16. .'</form>';
  17.  
  18. //Baza
  19. $i=0;
  20. while($i<count($phrase2)) {
  21. $phrase = $phrase2[$i];
  22. $database = array(
  23. 'firma, o, nas, zajmowanie' => '<a href="about.php">O nas</a> - zobacz kim jesteśmy',
  24. 'Witamy' => '<a href="index.php">Strona główna</a> - Główny opis',
  25.  
  26. 'kontakt,formularz,kontaktowy,mapa,mapka,dojazdu,dojazd' => '<a href="contact.php">Kontakt</a> - skontaktuj się z nami',
  27.  
  28. 'cennik,cenniki,zapłata,koszty,ceny' => '<a href="order.php">Wynajmij</a>-Kup/wynajmij ',
  29. );
  30.  
  31. //Sortowanie
  32. if (isSet($phrase) && $phrase != ""){
  33. if ($sort == 1){
  34. natsort($database);
  35. $sorts = "rosn?co";
  36. }else{
  37. arsort($database);
  38. $sorts = "malej?co";
  39. }
  40.  
  41. //Wynik
  42. echo "Poszukiwane słowo:<span>".$phrase.".</span> Wybrano sortowanie:<span> ".$sorts.".\n</span><ol>\n";
  43.  
  44. //Wyświetlamy wynik wyszukiwania - linki oraz opis
  45. foreach ($database as $word => $adres){
  46. if (@eregi(quotemeta($phrase), $word)){
  47. echo "<li>".$adres."</li>\n";
  48. $bl = true;
  49. }}
  50.  
  51. //Brak
  52. if (!$bl){
  53. echo '<li class="lack"><b>Nie znaleziono</b></li><li class="lack">Niestety nie udało nam się odnaleźć wyniku, który mógłby spełnić Twoje kryteria wyszukiwania. Spróbuj ponownie.</li>';
  54. }}
  55. $i++;
  56. $bl = false;
  57. }
  58. ?>

  1. <form method="post" action="search.php">
  2. <p><input type="text" value="" name="phrase1" size="22"/>
  3.  <select name="sort">
  4. <option value="1"'; if($sort==1){echo ' selected="selected"'; } echo '>Sortuj: rosn?co </option>
  5. <option value="0"'; if($sort==0){echo ' selected="selected"'; } echo '>Sortuj: malej?co </option>
  6.  <input type="submit" value="Szukaj"/></p>
  7. </form>


Zamiast "sztywnej" tablicy możesz odnosić się do bazy MySQL albo napisać skrypcik który będzie otwierał stronę i pobierał cały tekst, a później go dzielił i dynamicznie z czytywał z tablicy (tak samo możesz pobierać cały tekst z MySQL jeśli masz tak na stronie)
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.