Tom: DIR Ordner anzeigen

Beitrag lesen

Hello,

ich habe es Dir nun doch mal exemplarisch fertig gemacht udn ausprobiert.
Du musst Dir nur noch eine passende valide Seite drum herum schreiben und ein CSS dafür bauen.

<?php   ### filelist_paginated.php ###

error_reporting(E_ALL);

#---- Parameter ------------------
$pfad = "C:/Programme/xampp";
$limit = 5;

#---- Scriptvariablen ------------

$_dateiarray = array();
$pfad = rtrim($pfad,'/').'/';   ## EINEN abschließenden Slash sicherstellen

if($ordner = opendir($pfad))
{
    while(false!==($datei = readdir($ordner)))
    {
        ## Anderenfalls würde auch beim Dateinamen '0' (null) abgebrochen werden

if(is_file($pfad.$datei))
        {
            ## Damit Du Links und andere auch ausschließt.
            ## Wenn Du links zulässt, musst Du auf Rekursion prüfen, dann wirds erst
            ## richtig spanned

$_dateiarray[] = $datei;
        }
    }
    closedir($ordner);
}

for debug use

#echo "<pre>\r\n";
#echo htmlspecialchars(print_r($_dateiarray,1));
#echo "</pre>\r\n";

Präventiv anzuzeigende Seite auf 0 setzen

$page = 0;

ausrechnen, welches die höchstmögliche Seitennummer ist

$maxpage = intval(count($_dateiarray)/$limit);

Wenn per GET eine Seitennummer übermittelt wurde, diese benutzten

if(isset($_GET['page']))
  {
      $page = intval($_GET['page']);
  }

Die erlaubten Grenzen überprüfen

if ($page < 0)        { $page = 0; }
  if ($page > $maxpage) { $page = $maxpage; }

Start- und Stopgrenze ermitteln

$start = $page*$limit;
$stop  = $start+$limit;

Ausgabe durchführen

echo "    <ul class="filename">\r\n";

foreach($_dateiarray as $key => $val)
{
    if($key >= $stop) { break; }  ## Wenn Stopgrenez erreicht ist,. Schliefe abbrechen
    if($key >= $start)
    {
        echo "        <li class="filename">".htmlspecialchars($val)."</li>\r\n";
    }
}

echo "    </ul>\r\n";

Links aufbauen

echo "    <ul class="pagelink">\r\n";

for ($i = 0; $i <= $maxpage; $i++)
{
    echo "        <li class="pagelink"><a href="{$_SERVER['SCRIPT_NAME']}?page=$i">".($i+1)."</a></li>\r\n";
}

echo "    </ul>\r\n";

?>

Nun hoffe ich, dass Dir das weiter hilft.

Liebe Grüße aus Syburg

Tom vom Berg

--
Nur selber lernen macht schlau
http://bergpost.annerschbarrich.de