tutorials.de Buch-Aktion 05/2012
Like Tree5Danke
  • 1 Beitrag von einfach nur crack
  • 1 Beitrag von einfach nur crack
  • 1 Beitrag von einfach nur crack
  • 1 Beitrag von Raisch
  • 1 Beitrag von einfach nur crack
ERLEDIGT
NEIN
ANTWORTEN
9
ZUGRIFFE
397
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Umar1190 Umar1190 ist offline Rookie
    Registriert seit
    Feb 2012
    Beiträge
    5
    hallo,

    Ich möchte nur wissen wie kann ich ein Bilder verzeichnis mit oop lesen. Funksional habe

    ich es hinbekommen, aber ich weis nicht wie ich das mit oop realisieren sollte. bin seit 2

    tagen dadrauf und bekomme es leider nicht hin.

    Funksional Code

    PHP-Code:
                    $Bilder = array();
                    
    $Ordner "img/gallery";
                    
    $dateiendungen = array("png""jpg" ,"jepg");
                    
    $anzahl 25;
                    
    $nummern = array();

                    
    $ordner opendir($Ordner);
                    while (
    $Datei readdir($ordner)) {
                        if (!
    is_dir($Datei)) {
                            if (
    $Datei != "..") {
                                if (
    strstr($Datei".")) {
                                    
    $punkt strrpos($Datei".");
                                    
    $endung strtolower(substr($Datei$punkt 1));

                                    if (
    in_array($endung$dateiendungen)) {
                                        
    $Bilder[] = $Ordner "/" $Datei;
                                    }
                                }
                            }
                        }
                    }
                    
    closedir($ordner);

                    
    $anzahlbilder count($Bilder) - 1;
                    if (
    $anzahl $anzahlbilder) {
                        
    $anzahl $anzahlbilder;
                    }

                    for (
    $i 1$i <= $anzahl$i++) {
                        
    srand(microtime() * 1000000);
                        
    $nummer rand(0$anzahlbilder);
                        if (!
    in_array($nummer$nummern)) {
                            
    $nummern[] = $nummer;
                            echo 
    "<a href='$Bilder[$nummer]' rel=lightbox[roadtrip] 

    style='height: 200px; width: 140px;'><img src=\"" 
    $Bilder[$nummer] . "\"/></a>";
                        } else {
                            
    $i--;
                        }
                    } 

    Diese Script klappt auch sehr gut aber ich bin nur am lernen wie oop funsuniert. Login
    system habe ich mit oop gut hinbekommen aber das mit verzeichnis lesenen da komme ich echt nicht weiter.
     

  2. #2
    Avatar von einfach nur crack
    einfach nur crack einfach nur crack ist offline mag Cookies & Kekse
    tutorials.de Premium-User
    Registriert seit
    May 2007
    Ort
    Dresden (Sachsen)
    Beiträge
    1.961
    Versuch das mal (nicht ausprobiert):
    Code PHP:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    
    $pictures   = array();
    $directory  = 'img/gallery';
    $extensions = array('png', 'jpg', 'jpeg');
    $count      = 25;
    $numbers    = array();
     
    $iterator = new DirectoryIterator($directory);
    while($iterator->valid()) {
      if($iterator->isFile() && in_array($iterator->getExtension(), $extensions)) {
        $pictures[] = $directory . '/' . $iterator->current();
      }
    }
     
    $count_pictures = count($pictures) - 1;
    if($count > $count_pictures) {
      $count = $count_pictures;
    }
     
    srand(microtime() * 1000000);
     
    $numbers = shuffle(range(0, $count_pictures));
    $i = 0;
     
    foreach($numbers as $number) {
      if($i === $count) {
        break;
      } else {
        echo '<a href="' . $pictures[$number] . '" rel="lightbox[roadtrip]" style="height: 200px; width: 140px;"><img src="' . $pictures[$number] . '" /></a>';
      }
    }
    Geändert von einfach nur crack (03.02.12 um 14:52 Uhr)
    Umar1190 bedankt sich. 
    Ich mag:
    • positive Bewertungen meiner Beiträge
    • ein Danke für meine hilfreichen Beiträge

    Dabei kann ich dir helfen: PHP --- Javascript --- Ruby --- Coffeescript --- CSS --- HTML --- Webtechnologien --- Shell --- UNIX

    ... noch was: falls du mit dem Thema hier fertig bist, dann kannst du es auch als erledigt markieren.

  3. #3
    Umar1190 Umar1190 ist offline Rookie
    Registriert seit
    Feb 2012
    Beiträge
    5
    Naja das ist aber nicht oop programmierung. Ich dachte oop (objektorientierung programmierung) ist immer mit opjekte und fängt immer mit class. Was du geschrieben hast sieht auch eher nach funksional und nicht oop. Ich habe aber getestet es geht nicht. Und auserdem ich brauche nicht funksinal, weil das habe ich ja auch hinbekommen. Aber danke das du mir helfen wolltest.
     

  4. #4
    Avatar von einfach nur crack
    einfach nur crack einfach nur crack ist offline mag Cookies & Kekse
    tutorials.de Premium-User
    Registriert seit
    May 2007
    Ort
    Dresden (Sachsen)
    Beiträge
    1.961
    Mh, du wirst es in PHP nicht erleben, dass du etwas rein in OOP schreibst, da PHP einfach nicht komplett OOP-gerecht ist. Somit wirst du immer den Fall haben, dass du Schleifen und Bedingungen hast, die logischerweise nicht OOP sind. Außerdem hat OOP in PHP in erster Linie nichts mit class gemein, da man dass nicht braucht, wenn es schon existiert (siehe DirectoryIterator). Im Übrigen wüsste ich gerne, welche Fehlermeldungen dir PHP anzeigt. Dann kann ich dein Problem auch ausbessern.

    Code PHP:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    
    class Pictures implements Iterator {
      private $pictures = array();
      private $indices = array();
      
      public function __construct($directory, $extensions, $count) {
        $iterator = new DirectoryIterator($directory);
        while($iterator->valid()) {
          if($iterator->isFile() && in_array($iterator->getExtension(), $extensions)) {
            $this->pictures[] = $directory . '/' . $iterator->current();
          }
        }
       
        $count_pictures = count($pictures) - 1;
        if($count > $count_pictures) {
          $count = $count_pictures;
        }
        
        srand(microtime() * 1000000);
        
        $this->indices = array_slice(shuffle(range(0, $count_pictures)), 0, $count);
      }
     
      public function current() {
        return $this->pictures[current($this->indices)];
      }
      
      public function key() {
        return $this->indices;
      }
      
      public function next() {
        return next($this->indices);
      }
      
      public function rewind() {
        return reset($this->indices);
      }
     
      public function valid() {
        return ($this->current() !== false);
      }
    }
     
    $pictures = new Pictures('img/gallery', array('png', 'jpg', 'jpeg'), 25);
    foreach($pictures as $pictures) {
      echo '<a href="' . $picture . '" rel="lightbox[roadtrip]" style="height: 200px; width: 140px;"><img src="' . $picture . '" /></a>';
    }
    Umar1190 bedankt sich. 
    Ich mag:
    • positive Bewertungen meiner Beiträge
    • ein Danke für meine hilfreichen Beiträge

    Dabei kann ich dir helfen: PHP --- Javascript --- Ruby --- Coffeescript --- CSS --- HTML --- Webtechnologien --- Shell --- UNIX

    ... noch was: falls du mit dem Thema hier fertig bist, dann kannst du es auch als erledigt markieren.

  5. #5
    Umar1190 Umar1190 ist offline Rookie
    Registriert seit
    Feb 2012
    Beiträge
    5
    Aso ich habe schon von mein kumppel mit bekommen das php oop anders ist als java oop. Also damit meinte er das php nicht reif ist mit oop zumindest nicht so mächtig wie java in oop.

    Ich habe mal dein script eingesetzt, aber es kam folgender fehler:

    Fatal error: Maximum execution time of 30 seconds exceeded in C:\xampp\htdocs\bweb\testen\index.php on line 31
     

  6. #6
    Avatar von einfach nur crack
    einfach nur crack einfach nur crack ist offline mag Cookies & Kekse
    tutorials.de Premium-User
    Registriert seit
    May 2007
    Ort
    Dresden (Sachsen)
    Beiträge
    1.961
    Oh, verdammt. Ich habe da auch eine endlos Schleife eingebaut. Es müsste als letzter Befehl in der ersten Schleife noch ein $iterator->next() stehen.
    Umar1190 bedankt sich. 
    Ich mag:
    • positive Bewertungen meiner Beiträge
    • ein Danke für meine hilfreichen Beiträge

    Dabei kann ich dir helfen: PHP --- Javascript --- Ruby --- Coffeescript --- CSS --- HTML --- Webtechnologien --- Shell --- UNIX

    ... noch was: falls du mit dem Thema hier fertig bist, dann kannst du es auch als erledigt markieren.

  7. #7
    Umar1190 Umar1190 ist offline Rookie
    Registriert seit
    Feb 2012
    Beiträge
    5
    Aber kommischerweise kommt das fehler weiterhin:

    Fatal error: Maximum execution time of 30 seconds exceeded in C:\xampp\htdocs\bweb\testen\index.php on line 31

    ich denke ich mache da was falsch.
     

  8. #8
    Avatar von Raisch
    Raisch Raisch ist offline extraordinary bit
    Registriert seit
    Aug 2011
    Ort
    Berlin
    Beiträge
    333
    Zitat Zitat von einfach nur crack Beitrag anzeigen
    Mh, du wirst es in PHP nicht erleben, dass du etwas rein in OOP schreibst, da PHP einfach nicht komplett OOP-gerecht ist. Somit wirst du immer den Fall haben, dass du Schleifen und Bedingungen hast, die logischerweise nicht OOP sind.
    Hmm, das sehe ich aber ganz anders. In PHP kann man sehr schön (auch 100%) objektorientiert arbeiten. Schleifen und Bedingungen gibt es bei OOP in den Methoden auch an jeder Ecke, sagt also nichts darüber aus ob es OOP ist oder nicht.

    Zitat Zitat von Umar1190 Beitrag anzeigen
    Aso ich habe schon von mein kumppel mit bekommen das php oop anders ist als java oop. Also damit meinte er das php nicht reif ist mit oop zumindest nicht so mächtig wie java in oop.
    Der größte Nachteil von PHP ist, dass die Objekte nicht so langlebig sind wie bei Desktopanwendungen und die Kommunikation zwischen den Objekten nicht so schön modelliert werden kann.

    Zitat Zitat von Umar1190 Beitrag anzeigen
    Aber kommischerweise kommt das fehler weiterhin:

    Fatal error: Maximum execution time of 30 seconds exceeded in C:\xampp\htdocs\bweb\testen\index.php on line 31

    ich denke ich mache da was falsch.
    Poste doch mal was in Zeile 31 steht.

    Gruß

    //EDIT
    Btw, der Fehler sagt auch nur, dass in Zeile 31 etwas ist was er in 30 Sekunden nicht abarbeiten kann. (evtl eine Endlosschleife?)
    Umar1190 bedankt sich. 

  9. #9
    Umar1190 Umar1190 ist offline Rookie
    Registriert seit
    Feb 2012
    Beiträge
    5
    Aha ok.

    Also in line 31 steht nur das :

    PHP-Code:
          if($iterator->isFile() && in_array($iterator->getExtension(), $extensions)) {
            
    $this->pictures[] = $directory '/' $iterator->current();
          } 
    Das erste line ist in line 31 bei mir lol
     

  10. #10
    Avatar von einfach nur crack
    einfach nur crack einfach nur crack ist offline mag Cookies & Kekse
    tutorials.de Premium-User
    Registriert seit
    May 2007
    Ort
    Dresden (Sachsen)
    Beiträge
    1.961
    So geht es jetzt wirklich (ausprobiert!):
    Code PHP:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    
    class Pictures implements Iterator {
      private $pictures = array();
      
      public function __construct($directory, $extensions, $count) {
        $iterator = new DirectoryIterator($directory);
        foreach($iterator as $file) {
          if($file->isFile() && in_array(substr(strrchr($file->getFilename(), '.'), 1), $extensions)) {
            $this->pictures[] = $directory . '/' . $file->getFilename();
          }
        }
        
        $count_pictures = count($this->pictures) - 1;
        if($count > $count_pictures) {
          $count = $count_pictures;
        }
        
        srand(microtime() * 1000000);
        
        shuffle($this->pictures);
        $this->pictures = array_values(array_slice($this->pictures, 0, $count));
      }
      
      public function current() {
        return current($this->pictures);
      }
      
      public function key() {
        return key($this->pictures);
      }
      
      public function next() {
        return next($this->pictures);
      }
      
      public function rewind() {
        return reset($this->pictures);
      }
      
      public function valid() {
        return ($this->current() !== false);
      }
    }
     
    $pictures = new Pictures('img/gallery', array('png', 'jpg', 'jpeg'), 25);
    foreach($pictures as $picture) {
      echo '<a href="' . $picture . '" rel="lightbox[roadtrip]" style="height: 200px; width: 140px;"><img src="' . $picture . '" /></a>';
    }
    Umar1190 bedankt sich. 
    Ich mag:
    • positive Bewertungen meiner Beiträge
    • ein Danke für meine hilfreichen Beiträge

    Dabei kann ich dir helfen: PHP --- Javascript --- Ruby --- Coffeescript --- CSS --- HTML --- Webtechnologien --- Shell --- UNIX

    ... noch was: falls du mit dem Thema hier fertig bist, dann kannst du es auch als erledigt markieren.

Ähnliche Themen

  1. Antworten: 2
    Letzter Beitrag: 17.02.09, 10:15
  2. bilder aus verzeichnis öffnen
    Von Stephan Liebig im Forum PHP
    Antworten: 6
    Letzter Beitrag: 24.12.08, 12:22
  3. Bilder aus Verzeichnis löschen
    Von sugar im Forum PHP
    Antworten: 7
    Letzter Beitrag: 30.10.07, 15:21
  4. Bilder aus Verzeichnis auslesen
    Von Dipsi im Forum VisualStudio & MFC
    Antworten: 5
    Letzter Beitrag: 30.10.05, 11:20
  5. bilder aus verzeichnis auslesen
    Von Rios im Forum PHP
    Antworten: 4
    Letzter Beitrag: 25.10.02, 10:46