Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Wyszukiwarka PHP - proszę o pomoc!
Forum PHP.pl > Forum > Przedszkole
Rudi1204
Witam! od kilku dni szukam na roznego rodzaju forach skryptu do wyszukiwarki :/ przyznam ze nie jestem zbyt zaawansowany jak chodzi o php i o msql :/ niebardzo mam na to czas :/ jak narazie lekko staram sie zrozumiec php a wmiare mam opanowanego html i css.. :] to i tak niewielki sukces zwlaszcza ze jestem grafikiem ;p heh no dobra ale o co mi chodzi od kilku dni jak juz wspomnialem staram sie wyszukac skrypt do wyszukiwarki na plikach tekstowych tzn chodzi mi o to ze np mam taka strukture kat.

|archiwum|
|1/2006| |2/2006| |3/2006|....
1.txt 1.txt 1.txt
2.txt 2.txt 2.txt
3.txt 3.txt 3.txt

w katalogu archiwum mam pliki php np 2/2006.php 3/2006.php itd ktore zczutuja nazwy artykulow na zasadzie wczytania pierwszej lini tekstu w podrzednych kat i po nacisnieciu na link includuja plik txt do siebie to jak co jeszcze jest oki jakos daje sobie z tym rade (abo i sie tak wydaje;p) ale na stronie index.php chcial bym zamiescic wyszukiwarke ktora by przeszukiwala te pliki txt i w rezultaci dawala by mi linki do poszczegolnych artykulow, przy czym zeby nie bylo tak ze jak nacisne na link to mi sie otworzy plik txt tylko szablon z txt (np. 2/2006.php + 1.txt) cos w tym rodzaju >> czy ktos mogl by mi pomoc z tym zagadnieniem questionmark.gif bardzo bym prosil i byl bym wdzieczny
Cienki1980
Szukanie w plikach tekstowych danego wyrażenia jest co najmniej mało efektywne.

Musisz otwierać każdy plik .txt za pomocą fopen() albo file() albo file_get_contents() i sprawdzać, czy w danym pliku jest dane wyrażenie.

Jeżeli dany plik zawiera szukany tekst należy jego nazwę zapisać do jakiejś tablicy i po skończonym wyszukiwaniu wyświetlić pliki, których nazwy znajdują sie w tablicy.

Może czas poduczyć się w SQL'u i przerobić pliki tekstowe na bazę danych questionmark.gif
Rudi1204
na chwile obecna jest to zrobione w sql ale baza archiwum jest zbyt duża i za długo sie ładuje :/ no jak chodzi o dodawanie tekstów w panelu admina poza tym jak bym oparł sie na plikach tekstowych łatwiej było by mi uzupełniać to bo wystarczyło by tylko przekopiować katalog na serwer:/



-------------------------
widzę, że nie lubisz polskich liter
no chyba, że jesteś poza Polską
i nie masz zainstalowanego polskiej klawiatury
~Cienki1980


aha i jeszcze jedno na jednym z for juz w sumie sam nie pamietam gdzie znalazlem taka linijke kodu :
  1. <?php
  2.  
  3. function query_html ($dir, $q_num, $q_array)
  4. {
  5.  
  6.  $current_dir=opendir($dir);
  7.  while ($current_file=readdir($current_dir))
  8.  {
  9. if ($current_file=="." || $current_file=="..")
  10. continue;
  11. $fn="$dir"."$current_file";
  12. $filearray = file("$fn");
  13. $relevancy=0;
  14. $mypage="$current_file";
  15. $mycontent=strtolower(strip_tags(implode (" ", $filearray)));
  16. for ($d=0; $d<$q_num; $d++)
  17. {
  18.  $relevancy+=substr_count((string)$mycontent, (string)strtolower(strip_tags($q_array[$d])));
  19. }
  20. if ($relevancy>0)
  21. $res["$mypage"]=$relevancy;
  22.  }
  23.  if (count($res)>5)
  24.  arsort ($res);
  25.  return $res;
  26. }
  27.  
  28.  
  29. function print_answers ($search, $zoneurl, $r)
  30. {
  31.  $c=0;
  32.  if (count($r)<1)
  33. echo "Search Fail Wykrzyknik!<br>";
  34.  else
  35.  {
  36. echo "<BR>Szukanie slowa <b> ".$search.". </b> Rezultat : <b>".count($r)."</b>";
  37. while ($element=each($r))
  38. {
  39.  if ($c<1000)
  40.  {
  41. echo "<li>";
  42. echo "<a href=";
  43. echo $zoneurl.$element["key"];
  44. echo ">";
  45. echo $element["key"]."</a>";
  46. echo "</li>n";
  47. $c++;
  48.  }
  49. }
  50.  }
  51. }
  52. ?>
  53. <HTML>
  54. <HEAD>
  55. <TITLE> Text Search: <?print $_GET['search']?></TITLE>
  56. </HEAD>
  57. <BODY>
  58. <form action="juz_prawie.php" method="post" name="form1">
  59. <input type="text" name="search" value="<?php echo $search;?>">
  60. <input type="submit" value="submit" name="submit1">
  61. <?php
  62.  
  63. if(!empty($search))
  64. {
  65.  $q_array=explode(" ", $search);
  66.  $q_num=(integer)count($q_array);
  67.  
  68.  $r=query_html ("txt/", $q_num, $q_array);
  69.  print_answers ($search, "txt/", $r);
  70. }
  71. ?>
  72. </form>
  73. </BODY>
  74. </HTML>

jest on w sumie oki z tym ze po pierwsze wyszukiwac moze tylko w jendnym folderze :/ nawet nie uwzglednia podfolderow i wynikiem nie jest link do pliku tzn nazwa pliku musi byc ciagiem inaczej jak jest spacja to jest tylko pierwszy czlon :/
Czy mogł by mi ktoś pomóc z tym??
Cienki1980
No to w końcu jak jest zrobiona questionmark.gif
Na SQLu - chodzi za wolno i chcesz przerobić na pliki questionmark.gif
Czy na SQL'u i na plikach questionmark.gif

No i jeżeli chcesz przejść całkowicie z SQL'a na pliki bo "będzie szybciej" ... to to chyba trochę pomylony pomysł.

Żeby nie było, że tylko krytykuje to oto kilka info.

Funkcja sprawdzająca powinna być rekurencyjna, taka która jeżeli napotka katalog wywoła siebie samą i sprawdzi dany katalog.

Gotowca od mnie nie dostaniesz, jak zaczniesz sam coś kombinować i próbować to z chęcią pomogę.
dave666
Jak zrobic w tej wyszukiwarce zeby nie pokazywało rozszerzeń plików questionmark.gif Bardzo prosze o podpowiedz juz kilkanascie godzin szukam po necie i nie moge dojść:(
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.