Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Wyszukiwarka podanego tekstu w serwisie www
cent4
post 2.10.2009, 22:55:54
Post #1





Grupa: Zarejestrowani
Postów: 415
Pomógł: 0
Dołączył: 24.12.2008

Ostrzeżenie: (10%)
X----


Witam - jak mam zrobić wyszukiwarkę podanych tekstów na stronie. Podaję np. tekst "Microsoft" i dostaję odpowiedź że znalazł na 2 podstronach?
Go to the top of the page
+Quote Post
Zosiek
post 5.10.2009, 11:33:09
Post #2





Grupa: Zarejestrowani
Postów: 140
Pomógł: 22
Dołączył: 1.05.2009
Skąd: Będzin

Ostrzeżenie: (0%)
-----


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)

Ten post edytował Zosiek 5.10.2009, 12:05:16


--------------------
Pamiętaj ja staram się pomóc tobie, a ty może kiedyś pomożesz mnie. :D
Pomogłem Ci?? Jeśli tak to jestem z tego dumny. Jeśli nie to postaram się bardziej - nikt nie jest doskonały :P
Kliknij przycisk Pomógł pod postem, który Ci pomógł.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 08:06