Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] prosta wyszukiwarka z danymi w pliku
Forum PHP.pl > Forum > Przedszkole
matiszostak
szukam prosta wyszukiwarke ktora gromadzi dane w pliku (kazdy rodzaj)
moze byc wyszukiwarka ktora czeba aktualizowac recznie

prosze o pooc sad.gif

prosze o osdpowiedzi
Athlan
nie widze różnicy miedzy plikami dat a txt i tak jest ten sam tekst, poza tym proponuje bazę smile.gif
matiszostak
hmmm... no a jak zrobic taka wyszukiwarke sad.gif nikt nie odpowiada sad.gif(

prosze o odpowiedzi

sad.gif bo przeszukalem forum i nic nie znalazlem
slash12345
Napisz proszę jak to ma działać i czego ma szukać...
matiszostak
wyszukiwarka ma szukac slow w pliku i do tych slow ma byc dany link na ktory przenosi
slash12345
Chodzi o wyszukiwarkę słów, która będzie wyświetlała, w jakim pliku zostały znalezione, czy wyszukiwarkę z indeksem plików a'la Windows? Jeśli ma być to zwykła wyszukiwarka plików, rozwiązanie jest proste:
  1. <?php
  2. function piszformularz()
  3. {
  4. echo "<form action='szukaj.php' method='POST'><input type='text' name='fraza' /><input type='submit' value='Szukaj!' /></form>";
  5. }
  6. function szukaj($ciag,$katalog=".",$ignoruj=array(0=>".", 1=>"..", 2=>".htaccess", 3=>".htpasswd"))
  7. {
  8. $dopasowane = array();
  9. $h = opendir($katalog);
  10. while($e = readdir($h))
  11. {
  12. if (in_array($e,$ignoruj,true)) continue;
  13. if (is_file("{$katalog}/{$e}"))
  14. {
  15. $zawartosc = implode("",file("{$katalog}/{$e}"));
  16. if (strpos($ciag,$zawartosc) === true) $dopasowanie[] = "{$katalog}/{$e}";
  17. }
  18. elseif (is_dir("{$katalog}/{$e}")) $dopasowanie = array_merge($dopasowanie,szukaj($ciag,"{$katalog}/{$e}",$ignoruj));
  19. }
  20. closedir($katalog);
  21. return $dopasowane;
  22. }
  23. if (!isset($_POST["fraza"])) piszformularz();
  24. else
  25. {
  26. print_r(szukaj($_POST["fraza"]));
  27. }
  28. ?>
Wywołanie funkcji szukaj polega na podaniu szukanego ciągu znaków i katalogu, w którym będziemy szukać (jesli go nie podamy, zostanie użyty aktualny katalog).
Funkcja zwraca tablicę zawierającą ścieżki do plików, w których znaleziono dany tekst. Od Ciebie zależy, co zrobisz z tą tablicą.
EDIT: Nie wiem, o co dokładnie chodziło, spróbuj wytłumaczyć to bardziej precyzyjnie smile.gif
matiszostak
a jak mam pliki w wiekszej liczbie katalogow to jak to zrobic
Athlan
@matiszostak - rekurencyjnie, czyli napisać funkcję która otwiera katalog, istuje filesy i jak natrafi na katalog to wywoła sama siebie smile.gif

przyda się:is_file" title="Zobacz w manualu php" target="_manual, is_dir" title="Zobacz w manualu php" target="_manual,
i wspomniane wcześniej: readdir" title="Zobacz w manualu php" target="_manual, opendir" title="Zobacz w manualu php" target="_manual

EDIT... i nie zapomnij że pliki "." i ".." to nie sa pliki (lol)

pozdro 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.