Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Wyszukiwarka na stronie - wyszukiwanie z treści podstron
Forum PHP.pl > Forum > Przedszkole
BatGraf
Witajcie Wszyscy Życzliwi smile.gif

Od pół dnia morduję się ze wstawieniem różnych skryptów na stronę, które miały być wyszukiwarką treści na stronie głównej i podstronach.

Domyślam się, że ten temat mógł być już wałkowany, ale zaklinam - nie znalazłem tego czego szukam.

Bardzo proszę po pomoc (nie gotowca);

1. Jakiego skryptu szukać ? - nie musi byc z mysql, wystarczy, że przeszuka podstrony pod kątem treści i wyrzuci na nowej stronie linki.
2. Gdzie mogę znależć - skryptu lub tutoriala? Przeszukałem sporo bardziej znaczących stron. Całkiem dobry opis znalazłem na algorytmach, ale coś mi to nie wychodzi. Z innymi mam kłopot językowy smile.gif - nie znam EN smile.gif (tylko nie krzyczcie, żebym się uczył smile.gif - wiem). Może jest jakiś sympatyczny opis po polsku.


Z algorytmów próbowałem tego:

  1. <?
  2. function szukanie($szukane) {
  3.  
  4. $szukaj = explode(" ", $szukane);
  5.  
  6. $sciezki[] = "artykuly/";
  7. $sciezki[] = "porady/";
  8. $sciezki[] = "./";  // katalog, w którym jest skrypt
  9. $roz = ".txt|.html|.htm";
  10.  
  11. for ($i=0;$i<count($sciezki);$i++) {
  12. $katalog = opendir($sciezki[$i]);
  13. while ($plik = readdir($katalog)) {
  14. if ($plik<>"." and $plik<>".." and !is_dir($sciezki[$i].$plik)) {
  15. if (eregi("($roz)($)",$plik)) $lista[] = $sciezki[$i].$plik;
  16. }
  17. }
  18. closedir($katalog);
  19. }
  20.  
  21.  
  22. $ile = count($lista);
  23. for ($i=0;$i<$ile;$i++) {
  24. $f = fopen($lista[$i], "r");
  25. $zawartosc = fread($f, filesize($lista[$i]));
  26. fclose($f);
  27. $jest = "tak";
  28. $ileszuk=count($szukaj);
  29. for ($j=0;$j<$ileszuk;$j++) {
  30. preg_match_all("/".$szukaj[$j]."/i", $zawartosc, $li);
  31. if (count($li[0])<1) {$jest="nie"; break;}
  32. }
  33. if ($jest=="tak") $sa[] = $lista[$i];
  34. }
  35.  
  36.  
  37. $ile = count($sa);
  38. if ($ile>0) {
  39. sort($sa);
  40. for ($i=0;$i<$ile;$i++) {
  41. echo "<br /><a href=\"".$sa[$i]."\">" . $sa[$i]. "</a>";
  42. }
  43. }
  44. }
  45.  
  46.  
  47. $szukane = $_GET["szukane"];
  48.  
  49. if ($szukane<>"") { szukanie($szukane); }
  50. else {echo "nie ma co szukać!"; }
  51. ?>


system plików na serwerze ma mniej więcej tak:

katalog
index.php
/podstrony/
/podstrony/kontakt/

skrypt wstawiałem w index.php a dwie przykładowe ścieżki zmieniłem na /podstrony i podstrony/kontakt


Z góry ogromne dzięki. smile.gif
sagittariuspl
dobra, powiedz co w tym kodzie Ci nie działa. powiedz jakie to podstrony, bo moze lepiej napisać jakiegoś robota, który powyciga treści ze strony i je zapisze w bazie. jeśli chodzi o same szukanie w plikach to Twoja droga wydaje się słuszna, lae napisz co Ci tu nie pasuje
BatGraf
Chciałem, zeby na stronie głównej był formularz/okienko do wpisania np ceny pokoi (strona hotelu) - wyniki wypadałoby, żeby pokazało już w nowej stronie. Ten skrypt wyświetla mi tylko "nie ma co szukać!" czyli wyswietla komunikat, który jest w razie jak niczego nie znajdzie.

Byki (wg mnie i przeze mnie):

1. gdzieś coś źle "podłączyłem" [niewłasciwe ścieżki do plików, które miałyby być przeszukiwane] i wygląda na to, ze nie ma czego przeszukiwać)
2. brak wyobraźni, wiedzy (bo checi mam smile.gif ), zeby przekierować to wszystko na nową stronę z wynikami

W sumie nie chcę opierać się na sql, bo sama wyszukiwarka, to jak na razie duzy cios dla moich szarych komórek.
Może poszukać czegos podobnego w JS ? Tylko, że znalazłem skrypcik (w js), który jedynie zaznacza słowa na stronie
sagittariuspl
  1. <?php
  2. $sciezki[] = "./";
  3. ?>
zamień na ścieżkę (w moim przypadku to by było /var/www/katalog/ a jeżeli używasz np. krasnala to będzie jeden z podkatalogów C:\usr) i chyba zapomniałeś, że skrypt wykonuje się linkiem np. katalog/index.php?szukane=fraza -> gdzie fraza to słowo do wyszukania a 'szukane' to parametr przekazywany w get - nie ma tego, pokazuje, ze nie ma czago szukać
BatGraf
hmmm smile.gif coś z grubsza połapałem smile.gif Pliki są już na serwerze a dokładnie w katalogu głównym jest katalog "strony/wypoczynek/index.php" Wstawiałem właśnie w to miejsce nawet ścieżkę bezwzgledną podając "http://www.arecki.home.pl/strony/wypoczynek/index.php" ale nie pomogło.

(adres strony żeby nie było, że nie wyświetla obrazków to www.mazury-wypoczynek.pl ) smile.gif
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.