Ermitteln von Dateien in einem Ordner und dann nebeneinander darstellen

fredolin

Erfahrenes Mitglied
Hallo PHP Gemeinde,

ich habe ein Problem wo ich mich nun eine längere Zeit herum schlage.

Ich lese ein Ordner aus und lass die ermittelten Dateien untereinander darstellen. Doch nun werden es so viele, wo ich doch diese Dateien in Reihe nebeneinander darstellen möchte.

Hier mal mein Script zum ermitteln

PHP:
$pdfs = array(
            array(
                'pdf_text'    =>    'name_datei',
                'pdf_link'    =>    'datei'
                ),
            array(
                'pdf_text'    =>    'name_datei',
                'pdf_link'    =>    'datei'
                ),
            array(
                'pdf_text'    =>    'name_datei',
                'pdf_link'    =>    'datei'
                ),
            array(
                'pdf_text'    =>    'name_datei',
                'pdf_link'    =>    'datei'
                ),
            array(
                'pdf_text'    =>    'name_datei',
                'pdf_link'    =>    'datei'
                ),
            array(
                'pdf_text'    =>    'name_datei',
                'pdf_link'    =>    'datei'
                )
);

function pdf_news($pdfs){

    $server = $_SERVER['HTTP_HOST'];
    $linkpfad = '/pdf/';
    $fileend = '.pdf';
    $link = $server.$linkpfad;
   
    foreach($pdfs AS $c => $value) {
    //echo $link;
        echo '<li><a href="'.$linkpfad.$value['pdf_link'].$fileend.'" target="_blank"><img src="../img/icon_pdf.png" border="0" alt="PDF ICON" title="PDF ICON" /> '.$value['pdf_text'].'</a></li>';
    }
}


Mein Aufruf in der Seite

HTML:
<ul class="box_leist">
                <?php
                    pdf_news($pdfs);
                ?>
            </ul>

Was ich nun machen würde, ist, die Anzahl zu ermitteln um dann den Inhalt erst 10 Dateien untereinander und dann in die 2 Reihe wieder 10 Dateien untereinander und so weiter darstellen.

Wenn ich dann 6 Reihen nebeneinander habe, das ich dann wieder von vorne anfangen kann um eine Zeile tiefer.

Ich hoffe das ich mich Verständlich aus gedrückt habe und würde mich sehr freuen wenn ich Hilfe, Denkanstöße bekommen könnte und Bedanke mich Vorab bei Euch...

Danke
Fredolin
 
Ich für mich hätte es so gelöst, aber es gibt bestimmt was besseres. Denn ich bin lange kein Profi was dies angeht.
Aber vielleicht hilft es Dir ja trotzdem weiter um was zu erstellen oder es meldet sich noch jemand anderes der es besser kann. Ich denke was ich da geschrieben habe, erklärt sich von selber:
PHP:
$pdfs = array(
            array(
                'pdf_text'    =>    'name_datei1',
                'pdf_link'    =>    'datei1'
                ),
            array(
                'pdf_text'    =>    'name_datei2',
                'pdf_link'    =>    'datei2'
                ),
            array(
                'pdf_text'    =>    'name_datei3',
                'pdf_link'    =>    'datei3'
                ),
            array(
                'pdf_text'    =>    'name_datei4',
                'pdf_link'    =>    'datei4'
                ),
            array(
                'pdf_text'    =>    'name_datei5',
                'pdf_link'    =>    'datei5'
                ),
            array(
                'pdf_text'    =>    'name_datei6',
                'pdf_link'    =>    'datei6'
                ),
            array(
                'pdf_text'    =>    'name_datei7',
                'pdf_link'    =>    'datei7'
                )
);

function pdf_news($pdfs){
    $anzahlDaten = count($pdfs);
    $untereinandersoll = 10;
    $nebeneinandersoll = 6;
    $nebeneinanderGesamt = ceil($anzahlDaten / $untereinandersoll);
    $arrayInhalt = 0;
    $server = $_SERVER['HTTP_HOST'];
    $linkpfad = '/pdf/';
    $fileend = '.pdf';
    $link = $server.$linkpfad;

    for ($nebeneinander = 1; $nebeneinander <= $nebeneinanderGesamt; $nebeneinander++) {
        echo "<div style=\"float:left;\">";
        for ($untereinander = 1; $untereinander <= $untereinandersoll; $untereinander++) {
            if($anzahlDaten >= 1){
                echo '<li><a href="'.$linkpfad.$pdfs[$arrayInhalt]['pdf_link'].$fileend.'" target="_blank"><img src="../img/icon_pdf.png" border="0" alt="PDF ICON" title="PDF ICON" /> '.$pdfs[$arrayInhalt]['pdf_text'].'</a></li>';
            }
            $anzahlDaten--;
            $arrayInhalt++;
        }

        echo "</div>";
        if($nebeneinander %6 == 0) echo "<div style=\"clear:both;\"></div> <br>";
    }
}

echo "<ul class=\"box_leist\">";
pdf_news($pdfs);
echo "</ul>";
 
Hallo DerKleene1,

wow ich finde dein Script das funktioniert echt super und tut genau das was es soll .. Ich sag danke ...
 
Darf ich mal als PHP Newbie eine Frage dazu stellen?

Verstehe ich das richtig, das man mitteöls PHP einen Unterordner durchsuchen kann und die Dateien werden automatisch verlinkt?
Quasi Ordner Downloads und habe ich etwas neues, schiebe ich die Datei dort hinein und der Rest geht automatisch?

Ich selber hätte da jetzt den Datenbankansatz gehabt. Nicht viele Dateien, aber für einen Verein den Jahresplaner, Aufnahmeantrag etc.
 

Neue Beiträge

Zurück