Loading:


Wykaz plików/folderów w katalogu + Szukanie plików z daną frazą

Witam, ostatnio potrzebowałem wyświetlić zawartość katalogów oraz wyszukać w katalogach plików/folderów z podaną frazą, nie mogłem znaleźć "porządnego", więc napisałem własny.

Świadomie nie użyłem wielu funkcji, które by skróciły skrypt, ponieważ nie działają one prawidłowo... np. plik bez rozszerzenia uznają za katalog itd. 

 



Napisz Artyku³

Listing

<?PHP
// Search-file class by Ersiu.
// coded at 20 march 2010

        class SCAN {
                private $_FILES = array();
                private $_FOUNDS = array();
                private $isDir = 0;
                private $lang = array(
                        "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){
                                $_file = strtolower($file["fullname"]);
                                $phrase = strtolower($phrase);
                                if (strrpos($_file, $phrase) !== false){
                                        $this->_FOUNDS[] = $file;
                                }
                        }
                        return $this->_FOUNDS;
                }
               
                private function getFileInfo($dir,$file){
                        $explode = explode(".", $file);
                        $extension = (count($explode)>1)?end($explode):$this->isDir=1;
                        if($this->isDir == 1){
                                if(@scandir($dir."/".$file)) $extension = $this->lang["dir"];
                                else $extension = $this->lang["noExtension"];
                                $this->isDir = 0;
                        }
                        $name = (count($explode)>0 && strlen($explode[0])<=0)?$explode[1]:$explode[0];
                        $extension = ($name==$extension)?$this->lang["noExtension"]:$extension;
                        for($i=1; $i<=count($explode)-2; $i++){
                                $name .= $explode[$i];
                        }
                        $directory = $dir."/".$file;
                        $size = round((filesize($directory)/1024)/1024,2);
                        return array(
                                "name" => $name,
                                "fullname" => $file,
                                "extension" => $extension,
                                "size" => $size,
                                "dir" => $directory
                        );
                }
               
        }
?>




Przykład:

<?PHP
        require_once("scan_class.php");
        $f = "g";
        if(@isset($_GET["search"])) $f = "s";
        if(!isset($_GET["dir"])) die("Nie podano zmiennej \$dir");
        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;
        $func = ($f == "g")?$scan->get($_GET["dir"]):$scan->search($_GET["dir"], $_GET["search"]);
        foreach($func as $file){
                echo "<TR>
                        <TD>{$i}</TD>
                        <TD>{$file["
name"]}</TD>
                        <TD>{$file["
extension"]}</TD>
                        <TD>{$file["
size"]}MB</TD>
                        <TD>{$file["
dir"]}</TD>
                </TR>"
;
                $i++;
        }
        echo "</TABLE>";
?>




Dodano przez: ersiacki Ranga: 0 Punktów: 0
Komentarze użytkowników
    • Tre¶æ komentarza
      Kod do komentarza (opcjonalnie)
      PHP JavaScript MySQL Smarty SQL HTML CSS ActionScript
      Autor
      Token
      token

       

       








funkcje.net
Wszelkie prawa zastrzeżone©. | Funkcje.net 2008-2024 v.1.5 | design: diviXdesign & rainbowcolors