Mamy tutaj klasę SCAN, oraz w niej dwie funkcje publiczne, oraz jedną prywatną(może być używana tylko przez inne funkcje w tej samej klasie).
Funkcje:
get(SCIEZKA DO KATALOGU)
search(SCIEZKA DO KATALOGU, SZUKANA FRAZA)
Klasa (scan_class.php):
<?PHP // Search-file class by Ersiu. // coded at 20 march 2010 class SCAN { private $isDir = 0; "noExtension" => "NO-EXTENSION", "dir" => "DIRECTORY" ); public function get($dir){ $open = scandir($dir); foreach($open as $file){ if($file!="." && $file!=".."){ $info = $this->getFileInfo($dir,$file); $this->_FILES[] = $info; if($info["extension"] == $this->lang["dir"]){ $this->get($dir."/".$file); } } } return $this->_FILES; } public function search($dir, $phrase){ foreach($this->get($_GET["dir"]) as $file){ $this->_FOUNDS[] = $file; } } return $this->_FOUNDS; } private function getFileInfo($dir,$file){ if($this->isDir == 1){ if(@scandir($dir."/".$file)) $extension = $this->lang["dir"]; else $extension = $this->lang["noExtension"]; $this->isDir = 0; } $extension = ($name==$extension)?$this->lang["noExtension"]:$extension; $name .= $explode[$i]; } $directory = $dir."/".$file; "name" => $name, "fullname" => $file, "extension" => $extension, "size" => $size, "dir" => $directory ); } } ?>
Przykład użycia:
Szukanie plików z podaną frazą:
<?PHP require_once("scan_class.php"); echo "<TABLE BORDER=1 style='font-size:12px;'> <TR> <TD>#</TD> <TD>NAZWA</TD> <TD>FORMAT</TD> <TD>WAGA</TD> <TD>SCIEZKA</TD> </TR>"; $scan = new SCAN; $i=1; foreach($scan->search($_GET["dir"], $_GET["search"]) as $file){ echo "<TR> <TD>{$i}</TD> <TD>{$file["name"]}</TD> <TD>{$file["extension"]}</TD> <TD>{$file["size"]}MB</TD> </TR>"; $i++; } ?>
Użycie: http://localhost?dir=ŚCIEZKA_DO_KATALOGU&search=TUTAJ_SZUKANA_FRAZA
A tutaj Wykaz plików/folderów w katalogu
<?PHP require_once("scan_class.php"); echo "<TABLE BORDER=1 style='font-size:12px;'> <TR> <TD>#</TD> <TD>NAZWA</TD> <TD>FORMAT</TD> <TD>WAGA</TD> <TD>SCIEZKA</TD> </TR>"; $scan = new SCAN; $i=1; foreach($scan->get($_GET["dir"]) as $file){ echo "<TR> <TD>{$i}</TD> <TD>{$file["name"]}</TD> <TD>{$file["extension"]}</TD> <TD>{$file["size"]}MB</TD> </TR>"; $i++; } ?>
Użycie: http://localhost?dir=ŚCIEZKA_DO_KATALOGU