TS: Mit PHP Bild-Daten aus einem Ordner auslesen

Beitrag lesen

Hello,

<?php
$i = 0;
$verzeichnis = "img/";
$handle = openDir($verzeichnis);

##Fehlerhandlung fehlt

while ($datei = readDir($handle)) {

##Du besorgst hier Dateinamen. Bei einer Datei mit Namen "0" wäre hier Ende!

if ($datei != "." && $datei != ".." && !is_dir($datei)) {

hier wird im Prinzip doppelt geprüft, ob es sich um ein Verzeichnis handelt.

##Du könntest mit "is_file()" prüfen, das schließt aber auch symbolische Links mit ein, was hier aber unschädlich sein sollte, da Du keine rekursive Abfrage durchführst.

if (strstr($datei, ".gif") || strstr($datei, ".png") || strstr($datei, ".jpg")) { $verzeichnis_datei [$i] = $verzeichnis . $datei; $verzeichnis_datei [$i] [0] = getImageSize($verzeichnis_datei [$i]);

ich würde dann lieber mittels stristr() prüfen, um auch andere Schreibweisen für die Endungen zu ermöglichen ".Jpg, .JPG, ...). Das ist hier aber eigentlich ohnehin die falsche Funktion, denn Du willst doch wissen, wie die ENDUNG lautet, und nicht, ob ".jpg" irgendwo in der Mitte vorkommt.

##Nimm deshalb lieber if (strtolower([substr(](http://sg2.php.net/manual/en/function.substr.php)$datei,-4) == '.jpg')) oder eine ähnliche Konstruktion.

echo "<img src="$verzeichnis_datei[$i]" width="$verzeichnis_datei [$i] [0] [0]" height="$verzeichnis_datei [$i] [0] [1]"> <br>\n"; $i++; } } } closeDir($handle); ?>

Wie dedlfix schon schrieb, kannst auch ganz bequem glob() benutzen. Aber den Filter GLOB_BRACE würde ich trotzdem nicht unbedingt nutzen, solange das nicht caseinsensitive nutzbar ist. Ich würde lieber das erhaltene Array aller Dateien mittels eines Foreach() und dem oben schon erwähnten Filter durchgehen (alle nicht passenden Dateien aus dem Array herauslöschen).

So könnte man dann das ganze Konstrukt auch wirklich modular (in Funktionen oder Methoden) aufbauen, die jeweils die Daten in einem Array weiterreichen. Erst zum Schluss müsste dann in einer separaten Funktion die Ausgabe aus dem Array produziert werden. Die könnte man dann zu gegebener Zeit auch gegen eine mit DOM-Parser/Composer ersetzen, so wie Felix das fürs "HighEnd" gefordert hat.

Jedenfalls würde ich immer vermeiden, Datenbeschaffung und Ausgabegenerierung zu mischen. Das hat man nur solange getan, wie man insgesamt nur 8KByte Speicher zur Verfügung hatte. Die Zeiten sind vorbei!

Liebe Grüße
Tom S.

--
Es gibt nichts Gutes, außer man tut es!
Das Leben selbst ist der Sinn.
0 70

Mit PHP Bild-Daten aus einem Ordner auslesen

einsiedler
  • javascript
  • php
  1. 0
    MudGuard
    1. 0
      Matthias Apsel
      • php
      1. 0
        Felix Riesterer
        1. 0
          einsiedler
    2. 0
      einsiedler
  2. 0
    dedlfix
    1. 0
      einsiedler
      1. 0
        dedlfix
  3. 1
    Rolf B
  4. 0
    TS
    • php
    • programmiertechnik
    1. 0
      dedlfix
      1. 0
        TS
        1. 0
          dedlfix
          1. 0
            TS
            1. 0
              dedlfix
              1. 0
                TS
                • performance
                • php
                • programmiertechnik
                1. 0
                  dedlfix
                  1. 0
                    Rolf B
                    1. 0
                      TS
                    2. 0
                      Tabellenkalk
                      1. 0
                        Regina Schaukrug
  5. 1
    Robert B.
    • kontextwechsel
    • php
    1. 0
      TS
  6. 0
    einsiedler
    1. 0
      Tabellenkalk
      1. 0
        einsiedler
    2. 0
      einsiedler
  7. 0
    einsiedler
    1. 0
      Rolf B
      1. 0
        einsiedler
        1. 0
          TS
          • php
          • programmiertechnik
          1. 0
            TS
            • korrektur
            • php
            • programmiertechnik
          2. 0
            einsiedler
            1. 0
              TS
              1. 0
                einsiedler
                1. 0
                  TS
                  • php
                  • programmiertechnik
                  • programmiertechnik
                  1. 0
                    einsiedler
                    1. 0
                      TS
                      1. 0
                        einsiedler
                      2. 0

                        Debuggen

                        Regina Schaukrug
                      3. 0
                        TS
                        1. 0
                          einsiedler
                          1. 0
                            TS
                            1. 0
                              einsiedler
                              1. 0
                                TS
                                1. 0
                                  einsiedler
                                  1. 0

                                    Letzter Versuch?

                                    TS
                                    1. 0
                                      einsiedler
                                      1. 0
                                        TS
                                        1. 0
                                          einsiedler
                                          1. 0
                                            einsiedler
                                            1. 0
                                              Tabellenkalk
                                              1. 0
                                                einsiedler
                                                1. 0
                                                  Tabellenkalk
                                                  1. 0
                                                    einsiedler
                                                    1. 0
                                                      Rolf B
                                                    2. 0
                                                      Tabellenkalk
                                    2. 0
                                      einsiedler
                                      1. 0
                                        TS
                                        1. 0
                                          einsiedler
                                          1. 0
                                            TS
                                            1. -1
                                              einsiedler
                                              1. 0
                                                TS
                                                1. 0
                                                  einsiedler
                        2. 0
                          einsiedler
                          1. 3

                            Aufforderung zu mehr Geduld

                            Camping_RIDER
                            • moderation
                            • zu diesem forum
          3. 0
            einsiedler
    2. 1
      TS
      • php
      • programmiertechnik
    3. 0
      Robert B.
      • kontextwechsel
      • php