Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]wyszukiwarka danych
Forum PHP.pl > Forum > PHP
wieprzucpp
podobny temat jest tu http://forum.php.pl/index.php?showtopic=47...hl=wyszukiwarka
ale zbytnio go nie rozumiem. Możecie mi powiedziec czy jest jakaś funkcja która przeszukuj plik tekstowy w poszukiwaniu danej zmiennej, np. "kotek" i zwaraca powiedzmy True jeśli znajdzie lub False jeśli nie ma takowej zmiennej?? Plis potrzebuje pomocy, nie zamykajcie tego, błagam!
Ludvik
Wczytaj plik file_get_contents" title="Zobacz w manualu php" target="_manual i sprawdź wyrażeniami regularnymi albo strstr" title="Zobacz w manualu php" target="_manual.
almurik
W sumie szukałem na tym forum czegoś takiego ale wkońcu napisałem coś co mi najbardziej pasuje, może i tobie się przyda. Jeśli umieścisz to w pliku np: szukaj.php to przeszuka wszystkie pliki prócz katalogów i zwróci nazwę tego pliku jako link. Może nie jest za ładnie napisane i pewnie można prościej ale pracuję nad tym smile.gif.

  1. <?php
  2. $pagename = "szukaj.php"; //-- nazwa pliku z tym sktyptem
  3. $d = dir("./"); //-- katalog z plikami w ktorych ma wyszukiwac: 
  4. // - "./" - katalog w torym jest skrypt
  5. // - "inny_katalog/" - inny katalog :)
  6. $action = $_GET['action'];
  7. if(!isset($action))
  8. {
  9. $action="form";
  10. }
  11. switch ($action) 
  12. {
  13. case "form":
  14. <form action="$pagename?action=search" method="post">
  15. Szukany wyraz: <input type="text" name="fraza">
  16. <input name="submit" type="submit" value="Szukaj">
  17. </form>
  18. ";
  19. break;
  20. case "search":
  21. $fraza = $_POST['fraza'];
  22.  
  23. while($file_name=$d->read()) 
  24. {
  25. if (!($file_name == "." || $file_name == ".." || $file_name == $pagename || is_dir($file_name)))
  26. {
  27. $file = fopen($file_name,"r");
  28. @ $text = fread($file, filesize("$file_name"));
  29. $text = strip_tags($text);
  30. $text = str_replace("rn" , " ", $text);
  31. $text = explode(" ", $text);
  32. $tbl = count($text);
  33. for ($i=0; $i<$tbl; $i++)
  34. {
  35. $text[$i] = strtolower($text[$i]);
  36. $fraza = strtolower($fraza);
  37. if ($text[$i] == $fraza)
  38. {
  39. if (!is_array ($result))
  40. {
  41. $result[] = $file_name;
  42. }
  43. elseif (!in_array ("$file_name", $result))
  44. {
  45. $result[] = $file_name;
  46. }
  47. }
  48. }
  49. }
  50. }
  51. $tbl_result = count($result);
  52. if ($tbl_result > 0)
  53. {
  54. for ($i=0; $i<$tbl_result; $i++)
  55. {
  56. Szukany wyraz znaleziono w pliku: <a href="$result[$i]">$result[$i]</a> <br/>
  57. ";
  58. }
  59. }
  60. else
  61. {
  62. echo"Nic nie znalazlem :(";
  63. }
  64. break;
  65. }
  66. ?>


Pozdrawiam
wieprzucpp
almurik dzięki za pomoc, zaraz zobacze cos napisałes i spróbuje sam zmodyfikować dla swoich potrzeb winksmiley.jpg
greq
Gdzie mozna wprowadzic zmiany aby drukowal nie tylko nazwe pliku, ale i nazwy szukanych wyrazen do tego pliku?

No panowie tak trudno udzielic porady? nie chce gotowca (ale nie mam tez zbyt wiele czasu aby uczyc sie od podstaw) jezeli macie z tym problem to moze zrobicie to za pieniadze?
almurik
Cytat(greq @ 19.08.2006, 08:33 ) *
Gdzie mozna wprowadzic zmiany aby drukowal nie tylko nazwe pliku, ale i nazwy szukanych wyrazen do tego pliku?


Nie wiem czy dobrze rozumiem ale może zmień:

  1. <?php
  2. echo "Szukany wyraz znaleziono w pliku: <a href="$result[$i]">$result[$i]</a> <br/>";
  3. ?>


na

  1. <?php
  2. echo "Szukany wyraz ($fraza) znaleziono w pliku: <a href="$result[$i]">$result[$i]</a> <br/>";
  3. // lub w innej kolejności
  4. ?>



Hej
greq
Faktycznie, moj blad, nie szukane wyrazy ale znalezione i wydrukowane w tym samym pliku.
Po prostu aby ten szukany wyraz lub wyrazy jezeli jest ich wiecej wydrukowal w tym samym pliku smile.gif
almurik
lekko przerobiłem kod, może cos w tym stylu ? ... Może ktoś ma coś 'ładniejszego' smile.gif, samemu by mi się przydało.

  1. <?php
  2. $pagename = "szukaj.php";
  3. $d = dir("./");
  4.  
  5.  
  6. $action = $_GET['action'];
  7. if(!isset($action))
  8. {
  9. $action="form";
  10. }
  11. switch ($action) 
  12. {
  13. case "form":
  14. <form action="$pagename?action=search" method="post" ENCTYPE="multipart/form-data">
  15. Szukany wyraz: <input type="text" name="word">
  16. <input name="submit" type="submit" value="Szukaj">
  17. </form>
  18. ";
  19. break;
  20. case "search":
  21. $search_word = $_POST['word'];
  22. $word = strtolower($search_word);
  23.  
  24. while($file_name=$d->read()) 
  25. {
  26. if (!($file_name == "." || $file_name == ".." || $file_name == $pagename || is_dir($file_name)))
  27. {
  28. $file = fopen($file_name,"r");
  29. @ $text = fread($file, filesize("$file_name"));
  30. $text = strip_tags($text);
  31. $text = str_replace("rn" , " ", $text);
  32. $text = explode(" ", $text);
  33. $tbl = count($text);
  34. for ($i=0; $i<$tbl; $i++)
  35. {
  36. $text[$i] = strtolower($text[$i]);
  37.  
  38. if ($text[$i] == $word)
  39. {
  40. $result_sentence[] = '... '.$text[$i-1].' <b>'.$search_word.'</b> '.$text[$i+1].' ...';
  41. $result_file[] = $file_name;
  42. }
  43. }
  44. fclose ($file);
  45. }
  46. }
  47. $tbl_result = count($result_file);
  48.  
  49. if ($tbl_result > 0)
  50. {
  51. for ($i=0; $i<$tbl_result; $i++)
  52. {
  53. $nr = $i+1;
  54. -------------------------------------------------------------------------<br/>
  55. <b>Wynik $nr)</b> $result_sentence[$i] : <a href="$pagename?action=show&file_name=$result_file[$i]&word=$search_word">$result_file[$i]</a> <br/>
  56. ";
  57. }
  58. }
  59. else
  60. {
  61. echo"Nic nie znalazlem :(";
  62. }
  63. break;
  64. case "show":
  65. $file_name = $_GET['file_name'];
  66. $word = $_GET['word'];
  67. $file = fopen($file_name,"r");
  68. @ $text = fread($file, filesize("$file_name"));
  69. $text = str_replace("$word" , "<b><u>$word</u></b>", $text);
  70. echo "$text";
  71. break;
  72. }
  73. ?>


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