wuscheck: Ausgeben von bestimmten Dateien aus einem Ordner

Ich habe einen Ordner, dessen Dateien ich auslese und sortiere:

2009-09-13-k-oh.jpg  
  2009-09-13-g-oh.jpg
  2009-09-12-k-dh.jpg
  2009-09-12-g-dh.jpg

Ich benötige allerdings nur die beiden Dateien, die ein "-k- beinhalten. Wie gehe ich dafür vor?

Vielen Dank im Voraus!

  1. Hi,

    Ich habe einen Ordner, dessen Dateien ich auslese und sortiere:

    auf welche Weise?

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:| br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. Hi,

      Ich habe einen Ordner, dessen Dateien ich auslese und sortiere:

      auf welche Weise?

      Cheatah

      Hier ist der Code:

      // als array festlegen  
      $stack=array();  
        
      $handle=opendir($folder);  
      while ($file=readdir($handle)){  
        if($file!=".." && $file!="." && !is_dir($file)){  
        
                  if (strpos($file,".jpg")  ||  
                      strpos($file,".gif") ||  
                      strpos($file,".png")) {  
      				  
          // an das ende des arrays anfügen  
          array_push($stack,$file);  
        
          $i++;  
        }  
      }  
      }  
      closedir($handle);  
        
      // nach abc sortieren  
      rsort($stack);
      

      es können nur dateien vorkommen, die so aufgebaut sind, wie oben gezeigt. Das aktuellste Datum der jeweiligen Gruppe -k-oh oder k-dh hole ich mir über $stack[0]. Allerdings fehlt mir der Zwischenschritt, indem ich erst einmal die k-oh und k-dh erkenne. Denn die beiden Bilder mit dem aktuellsten Datum und diesen beiden Endungen sollen später angezeigt werden.

      1. Moin Moin!

        if (strpos($file,".jpg")  ||
                        strpos($file,".gif") ||
                        strpos($file,".png")) {

        // an das ende des arrays anfügen
            array_push($stack,$file);

        Möchtest Du hier wirklich strpos verwenden? Auf diese Art würde auch "kurnikova.jpg.exe" im Array landen, genau wie "vorsicht.giftig.txt".

        Alexander

        --
        Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so".
  2. Hello,

    Ich habe einen Ordner, dessen Dateien ich auslese und sortiere:

    2009-09-13-k-oh.jpg  
      2009-09-13-g-oh.jpg
      2009-09-12-k-dh.jpg
      2009-09-12-g-dh.jpg

    Ich benötige allerdings nur die beiden Dateien, die ein "-k- beinhalten. Wie gehe ich dafür vor?

    Dann besorge doch auch nur die Namen der Dateien, die ein 'k' enthalten:

    http://de.php.net/manual/de/function.glob.php

    Das geht selbstverständlich mit etwas mehr Eigenanstrengung auch mit
    http://de.php.net/manual/de/function.readdir.php
    oder
    http://de.php.net/manual/de/function.scandir.php

    Liebe Grüße aus dem schönen Oberharz

    Tom vom Berg

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

      Ich habe einen Ordner, dessen Dateien ich auslese und sortiere:

      2009-09-13-k-oh.jpg  
        2009-09-13-g-oh.jpg
        2009-09-12-k-dh.jpg
        2009-09-12-g-dh.jpg

      Ich benötige allerdings nur die beiden Dateien, die ein "-k- beinhalten. Wie gehe ich dafür vor?

      Dann besorge doch auch nur die Namen der Dateien, die ein 'k' enthalten:

      http://de.php.net/manual/de/function.glob.php

      Das geht selbstverständlich mit etwas mehr Eigenanstrengung auch mit
      http://de.php.net/manual/de/function.readdir.php
      oder
      http://de.php.net/manual/de/function.scandir.php

      Liebe Grüße aus dem schönen Oberharz

      Tom vom Berg

      Ich habe das Beipiel mal umgeschreiben, aber es funzt nicht. Es wird int(1) ausgegeben...

      function match_wildcard( $wildcard_pattern, $haystack ) {  
         $regex = str_replace(  
           array("\*", "\?"), // wildcard chars  
           array('.*','.'),   // regexp chars  
           preg_quote($wildcard_pattern)  
         );  
        
         return preg_match('/^'.$regex.'$/is', $haystack);  
      }  
        
      $test = "2009-09-12-k-dh";  
        
      var_dump(  
          match_wildcard('*k-dh*', $test)  
      	);