Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Skrypt skanujący ftp
Forum PHP.pl > Forum > Przedszkole
majestiq
Poniższy skrypt nie chce działać:

  1. <?php
  2. header ('Content-type:text/plain; charset=utf-8');
  3.  
  4.  
  5. function dirsearch($dir){
  6.    $results = array();
  7.    $res = opendir($dir);
  8.    $filenames = array();
  9.    
  10.    while ( $file = readdir($res) ){
  11.        if ($file == "." || $file == ".." || $file == basename(__FILE__))  continue;
  12.        $filenames[] = $file;
  13.        
  14.    }
  15.  
  16.    foreach ($filenames as $i => $file){
  17.        if (is_dir ($dir .'/'. $file)) {
  18.            $results = array_merge($results, dirsearch ($dir .'/'. $file));
  19.        }else {
  20.            $content = file_get_contents($dir . '/' . $file);
  21.            if (preg_match('%<title>.*?<\title>%ism', $content)) {
  22.                 $results[] = $dir .'/'. $file;
  23.             }
  24.            
  25.        }
  26.    }
  27.    
  28.    return $results;
  29.    
  30. }
  31.  
  32.  
  33. $dir = dirname (__FILE__);
  34.  
  35. $res2 = dirsearch($dir);
  36. var_dump ( $res2 );
  37.  
  38. ?>



Chociaż jest zrobiony analogicznie jak ten:

  1. <?php
  2. header ('Content-type:text/plain; charset=utf-8');
  3.  
  4.  
  5.  
  6.  
  7. function przegladaj ( $katalog ) {
  8.       $wyniki = array ();
  9.       $uchwyt = opendir ($katalog);                $pliki = array();
  10.       while ( $plik = readdir ( $uchwyt ) ) {
  11.               if ( $plik == '.' || $plik == '..' || $plik == basename ( __FILE__ ) ) {
  12.                       continue;
  13.               }
  14.               $pliki[] = $plik;
  15.       }
  16.              $nazwa_pliku = '';
  17.       foreach ( $pliki as $klucz => $nazwa_pliku ) {
  18.               if ( is_dir ( $katalog .'/'. $nazwa_pliku ) ) {
  19.                       $wyniki = array_merge ( $wyniki, przegladaj ( $katalog .'/'. $nazwa_pliku ) );
  20.               }
  21.               else {
  22.                       //fileperms
  23.                       if ( filesize ( $katalog .'/'. $nazwa_pliku ) < 1024*500 ) {
  24.                               $zawartosc_pliku = file_get_contents ( $katalog .'/'. $nazwa_pliku );
  25.                               if ( preg_match ( '%<title>.*?</title>%ism', $zawartosc_pliku, $tytul ) ) {
  26.                                       $wyniki[] = $katalog .'/'.$nazwa_pliku;
  27.                               }
  28.                       }
  29.                                      }
  30.       }
  31.       return $wyniki;
  32. }
  33.  
  34.  
  35. $ten_katalog = dirname ( __FILE__ );
  36.  
  37. $wyswietl = przegladaj ( $ten_katalog );
  38.  
  39. var_dump ( $wyswietl );
  40.  
  41. ?>


Ten już działa, tylko nie mogę znaleźć w nich za bardzo różnicy.
Kto pomoże naprawić ten pierwszy ?
tomsi
A co się konkretnie dzieje, że nie chce działać?
majestiq
Ogólnie skrypt ma wyświetlić wszystkie katalogi na ftp i pliki które mają w treści znacznik <title></title>
No i w 2 przypadku dostaję pełną tablicę z wynikami, w 1 skrypcie natomiast tablica ta jest pusta, nie
wiem dlaczego bo wydaje mi się że jest to identycznie zrobione jak w działającym skrypcie.
tomm
popraw zamykający </title>
majestiq
Heheh, a tyle szukałem błędu :-)
Dzięki wielkie exclamation.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.