ausgabe von for begrenzen

  • Mein lösungsansatz:

    Quellcode

    1. function getFiles($page,$fperpage)
    2. {
    3. $page = ($page <= 0 ? 0 : --$page);
    4. $start = $page * $fperpage;
    5. $nolistening = array('.',
    6. '..',
    7. 'index.php',
    8. 'smiliey2.swf',
    9. 'test.php',
    10. 'F',
    11. '.htaccess'
    12. //.........
    13. );
    14. $dhandle = opendir('.'); /////<---------------------- Bearbeiten!!!
    15. $flist = array();
    16. while (($file = readdir($dhandle)) !== FALSE)
    17. {
    18. if (!in_array($file,$nolistening) && !preg_match('#\.html$#i',$file))
    19. {
    20. $flist[] = $file;
    21. unset($file);
    22. }
    23. }
    24. closedir($dhandle);
    25. natsort($flist);
    26. $return = array();
    27. for ($i = $start; $i < $start+$fperpage; $i++)
    28. {
    29. $return[] = $flist[$i];
    30. }
    31. return ($return);
    32. }
    Alles anzeigen



    Vorteile:
    + Sortierung

    Nachteile:
    - Es werden jedes mal ALLE dateien neu ausgelesen

    Aufruf:
    array [Dateinamen] = getFiles(int [Seite], int [Dateien pro Seite]);

    z.b.:
    ./test.php?seite=1
    Auflistung der dateien in meinem htdocs/xampp ordner:

    Quellcode

    1. $seite = intval($_GET['seite']);
    2. $array = getFiles($seite,15);
    3. print_r($array);

    Array
    (
    [0] => .modell
    [1] => .version
    [2] => adodb.php
    [3] => AnkeCalligraph.fdb
    [4] => AnkeCalligraph.TTF
    [5] => biorhythm.php
    [6] => cds-fpdf.php
    [7] => cds.php
    [8] => components.php
    [9] => excel.php
    [10] => filezilla.php
    [11] => getexcel.php
    [12] => head.php
    [13] => iart.php
    [14] => img
    )


    Je nachdem, was du auflisten möchtest, kannst du auch die zeile

    Quellcode

    1. if (!in_array($file,$nolistening) && !preg_match('#\.html$#i',$file))
    ändern. Z.b. scheint es so, als würdest du nur swf dateien suchen. Dann würde die zeile so besser:

    Quellcode

    1. if (!in_array($file,$nolistening) && is_file('./'.$file) && preg_match('#\.swf$#i',$file))



    Dass ich preg statt ereg genommen habe, liegt nur daran, dass preg allgemein schneller ist.