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-2025 v.1.5 | design: diviXdesign & rainbowcolors