Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Przeszukiwanie plików na serwerze w poszukiwaniu frazy.
wlodziu
post
Post #1





Grupa: Zarejestrowani
Postów: 31
Pomógł: 0
Dołączył: 4.07.2011

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


Witam. Próbuje stworzyć wyszukiwarkę plików na serwerze. Jej działanie ma polegać na tym, że wpisuje szukaną fraze i skrypt przeszukuje wszystkie katalogi i pliki na serwerze w poszukiwaniu tej frazy i wyświetla liste plików w jakich ona się znajduje. Mam taki skrypt on działa, ale (jest jedno ale) nie szuka w plikach php, znaczy szuka, ale nie wiem na jakiej zasadzie jeśli umieszczę np w pliku:
  1. <?php
  2. echo "ala ma kota";
  3. ?>

To nie znajdzie żadnych ze słów.
A chodzi mi o to by szukało np. zmiennej. Proszę o pomoc, niżej kod PHP skryptu:
  1.  
  2. <?
  3.  
  4. if (isset($_POST["zapytanie"])) $zapytanie=strtolower($_POST["zapytanie"]);
  5. else $zapytanie="";
  6.  
  7. $zakazane_pliki=array("funkcje.php","hasla.php","szukaj.php");
  8. $dozwolone_rozszerzenia=array("htm","html","php");
  9.  
  10. if ($zapytanie!="") {
  11. echo "Wyniki wyszukiwania frazy <b>$zapytanie</b>:<br>";
  12. przeszukuj(".",$zapytanie, $zakazane_pliki,$dozwolone_rozszerzenia);
  13. }
  14. else echo "Nie wpisales zadnej frazy!";
  15.  
  16.  
  17. function przeszukuj($nazwa_folderu,$zapytanie,$zakazane_pliki,$dozwolone_rozszerzenia)
  18. {
  19.  
  20. if (!isset($nazwa_folderu)) $nazwa_folderu=".";
  21.  
  22. $folder=opendir($nazwa_folderu);
  23.  
  24. while ($plik=readdir($folder))
  25. {
  26. if ((!in_array($plik, $zakazane_pliki)) && in_array(substr($plik,strrpos($plik,".")+1),$dozwolone_rozszerzenia))
  27. {
  28. $zawartosc=implode("",file($nazwa_folderu."/".$plik));
  29. $zawartosc2=strip_tags(strtolower($zawartosc));
  30. $pozycja=strpos($zawartosc2, $zapytanie);
  31. $start=strpos($zawartosc, "<title>")+7;
  32. $stop=strpos($zawartosc, "</title>");
  33.  
  34. if ($start===false || $stop===false)
  35. $tytul="".$nazwa_folderu."/".$plik."";
  36. else
  37. $tytul="".$nazwa_folderu."/".$plik."";
  38.  
  39.  
  40. if ($pozycja!==false)
  41. {
  42. echo "<a href=".$nazwa_folderu."/".$plik.">".$nazwa_folderu."/".$plik."</a><br>";
  43. }
  44. }
  45.  
  46. if ($plik!="." && $plik!=".." && is_dir($nazwa_folderu."/".$plik))
  47. przeszukuj($nazwa_folderu."/".$plik, $zapytanie, $zakazane_pliki, $dozwolone_rozszerzenia);
  48. }
  49.  
  50. closedir($folder);
  51. }
  52.  
  53. ?>

Z góry dziękuję.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Adi32
post
Post #2





Grupa: Zarejestrowani
Postów: 348
Pomógł: 26
Dołączył: 8.10.2008
Skąd: Lublin

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


  1. <?php
  2.  
  3.  
  4. function szukaj($sama='',$cos,&$gdzie)
  5. {
  6. global $return;
  7.  
  8. //global $_POST['gdzie'];
  9.  
  10. if (!empty($gdzie)) {
  11. $tyl = '../../'.$gdzie.'/';
  12. } else {
  13. $tyl = '../../';
  14. }
  15. //$tyl = '../'; // folder nadrzedny
  16. //$tyl = '../../strony/'; - strony
  17.  
  18. // ustawiania licznika
  19. if ($i='') {
  20. $i=0;
  21. }
  22. global $i;
  23.  
  24. $sciezkaa .= $sama.'/';
  25.  
  26. $sciezka = $tyl.$sciezkaa;
  27.  
  28. $sciezka = str_replace('//','/',$sciezka);
  29.  
  30. if ($handle = opendir($sciezka)) {
  31.  
  32. while (false !== ($file = readdir($handle)))
  33. {
  34.  
  35. if($file!=='..' && $file!=='.' && $file!=='jpg' && $file!=='png') {
  36.  
  37. if (is_dir($sciezka.$file)) {
  38.  
  39. szukaj($sciezkaa.$file, $cos,$gdzie);
  40.  
  41. } else {
  42.  
  43. if (strpos(file_get_contents($sciezka.$file), $cos) !== false) {
  44. echo $cos .' Znaleziono w pliku: '.$sciezka.$file.'<br />';
  45. flush();
  46.  
  47. }
  48.  
  49. }
  50.  
  51. }
  52.  
  53. }
  54.  
  55. closedir($handle);
  56. }
  57.  
  58. return $return;
  59.  
  60. }
  61.  
  62.  
  63.  
  64.  
  65. ?>
  66.  
  67. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  68. <html xmlns="http://www.w3.org/1999/xhtml" lang="pl" xml:lang="pl">
  69. <head>
  70. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  71. <title>Znajdywarka</title>
  72. <meta name="language" content="pl" />
  73. <meta name="Description" content="opis strony" />
  74. <meta name="Keywords" content=" wyraz1, wyraz2, wyraz3, wyraz4..." />
  75. <link rel="stylesheet" type="text/css" href="css/screen.css" />
  76. <script type="text/javascript" src="js/jquery.js"></script>
  77. <script type="text/javascript" src="js/js.js"></script>
  78. </head>
  79.  
  80. <body>
  81.  
  82. <p>Jeżeli wpiszesz coś w pole 'gdzie' to wyszukiwanie odbędzie się w: strony/(gdzie)/</p>
  83. <p>Jeżeli nic nie wpiszesz w pole 'gdzie' to wyszukiwanie odbędzie się w: strony/</p>
  84. <p></p>
  85. <form method="POST" action="detal.php">
  86. <label>Gdzie: <input type="text" name="gdzie" value=<?=$_POST['gdzie']?> /></label>
  87. <label>Co: <input type="text" name="cos" value=<?=$_POST['cos']?> /></label>
  88. <label><input type="submit" name="szukaj" value="Szukaj!"></label> <br />
  89.  
  90. </form>
  91.  
  92. <?php
  93.  
  94. if(isset($_POST['szukaj']) && !empty($_POST['cos'])) {
  95.  
  96. echo '<pre>';
  97. print_r(szukaj(null,$_POST['cos'],$_POST['gdzie']));
  98. echo '</pre>';
  99.  
  100. }
  101.  
  102. ?>
  103.  
  104. </body>
  105. </html>


Napisałem sobie jeszcze wersje FTP, która przeszuka cały server do którego się zalogujesz ale niestety nie udostępnię.

Ta wersja potrafi cofnąć się do folderu public_html lub niżej jeżeli brak praw.

Sądzę ze będziesz potrafił przystosować do swoich potrzeb.

Ten post edytował Adi32 4.07.2011, 09:09:24
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 20.09.2025 - 01:44