File-ok filterelt megjelenítése

File-ok filterelt megjelenítése
2018-08-10T11:53:37+02:00
2018-08-11T08:34:07+02:00
2022-12-05T12:50:40+01:00
Vik80
Sziasztok!

Egy olyan dologban akadtam el egy kicsit, hogy egy adott könyvtárban levő file-okat szűrve
(kiterjesztés szerint ) szeretnék listázva megjeleníteni. A file-ok listázása alapból működik, szépen táblázatosan listázódik ezzel nincsen baj, viszont a szűrést végző programkódot próbálom a megfelelő módon implementálni, de egyáltalán nem, vagy hibásan listázza.

A file listázásra megírt kód, eddig így néz ki:



<table id="fileList" cellspacing="0" cellpadding="0"> <thead> <tr> <th width="70%">Filenév</th> <th width="10%">Módosítás dátuma</th> <th width="10%">Fileméret (Kbyte)</th> </tr> </thead>
<tbody> <tr>
<?php while(($files = readdir($opDir))!== false){ if($files!="." && $files!=".." && $files!="thumbs" && $files!="Thumbs.db") // Ide próbálom berakni a szűrést valahogy így $dir = glob("/Main/adatok/*.xls"); foreach($dir as $files){ $fileStorage[] = $files; } } // Paging snippet $startIndex = (($actualPage-1) * $filesPerPage); $parameter1 = $startIndex + $filesPerPage-1; $parameter2 = count($fileStorage)-1; $endIndex = min($parameter1,$parameter2); // End paging snippet for($p=$startIndex; $p<=$endIndex; $p++){ ?> <td> <?php $filePath = "Main/adatok/"; $absPath = $filePath.$fileStorage[$p]; ?> <?php print "<a href="".$absPath."">".$fileStorage[$p]."</a>"; ?> </td> <td> <?php print date("Y-m-d",filemtime($absPath)); ?> </td> </tr>
</tbody> </table>
A kódból ez csak egy részlet természetesen,de csak a listázást végző rész lett átemelve.

A segítségeket és a hozzászólásokat előre is köszönöm....
Mutasd a teljes hozzászólást!
Szia,
szerintem is használj inkább glob-ot, ahogy "pookie2" írta.

Esetleg emeld ki valami függvénybe, aminek átadod paraméterként, hogy melyik mappát járja be, illetve, hogy milyen kiterjesztésre szűrsz, és eredményül visszaadja fájlok listáját.
Esetleg valami hasonló:

function my_glob($path, $extension = null){ if($extension === null){ $extension = '*'; } if(is_dir($path)){ $files = glob($path.'*.'.$extension); return $files; } else { //todo ha esetleg nem mappát adtál át neki utvonalnak } }
Mutasd a teljes hozzászólást!

  • Használd inkább a glob-ot!

    Pl.:
    $txtFiles = glob("path/to/my/files/*.txt"); $imgFiles = glob("path/to/my/files/*.{jpg,png,gif}", GLOB_BRACE);
    Mutasd a teljes hozzászólást!
  • Szia,
    szerintem is használj inkább glob-ot, ahogy "pookie2" írta.

    Esetleg emeld ki valami függvénybe, aminek átadod paraméterként, hogy melyik mappát járja be, illetve, hogy milyen kiterjesztésre szűrsz, és eredményül visszaadja fájlok listáját.
    Esetleg valami hasonló:

    function my_glob($path, $extension = null){ if($extension === null){ $extension = '*'; } if(is_dir($path)){ $files = glob($path.'*.'.$extension); return $files; } else { //todo ha esetleg nem mappát adtál át neki utvonalnak } }
    Mutasd a teljes hozzászólást!
  • Példaként egy régebbi tesztem, melynek forrását érdemes átbogarászni...
    A függvény meghívása:

    <?php //listázható fájlok $allowed_extensions = array("gif", "jpg", "jpeg", "png", "bmp", "pdf", "html", "mp3", "avi"); echo php_file_tree("demo/", 'onmouseover="mutat(this)" onmouseout="rejt(this)"', $allowed_extensions); ?>
    Megj: A csatolt fájlból a listázandó könyvtárakat (demo) kivettem, a méretcsökkentés érdekében...
    Mutasd a teljes hozzászólást!
    Csatolt állomány
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd