#1 27. Mai 2009 Bilder aus Verzeichnis auslesen und nach Datum sortieren Moin Jungs Kennt jemand ein simples Gallery-Script dass folgendes löst: Bilder aus EINEM Verzeichnis auslesen Nach datum sortieren Eventuell so, dass man durchklicken kann Mo-Fr und halt älter Archiv oder sowas .. Wenn jemand sowas kennt oder ein Script das ähnlich ist und ohne viel Aufwand umprogrammiert werden kann bitte melden BW gibts für gute Ratschläge. Wenn möglich sollte das Script ohne mySQL auskommen. + Multi-Zitat Zitieren
#2 31. Mai 2009 AW: Bilder aus Verzeichnis auslesen und nach Datum sortieren Hi, schau dir das mal an: http://www.suedweb.de/content_showit/showit/index.php?kat=lastpics&sort=1 Da kann man nach uploaddatum sortieren. habe es jedoch noch nicht selbst getestet. Greez MahatmaGanja + Multi-Zitat Zitieren
#3 31. Mai 2009 AW: Bilder aus Verzeichnis auslesen und nach Datum sortieren hat eh langeweile, hab dir ma schnell was gecoded ... als grundbasis sollte es genügen. sowas wie mo-fr, übersicht der daten etc sollte kein problem sein, musst nur nen bissl bei der ausagbe ändern (z.b. in einer tabelle mit verschiedenen infos und nem thumb o.Ä.) PHP: <? $ImagePath = "images/" ; $ImageFileList = GetFilesFromDir ( $ImagePath , "filectime" ); // index = file created time // $ImageFileList = GetFilesFromDir($ImagePath, "filemtime"); // index = last modified time // $ImageFileList = GetFilesFromDir($ImagePath, "fileatime"); // index = last accessed time ksort ( $ImageFileList ); // bilder nach index sortieren // Ausgabe von Bildern echo "<h1>Bilder von: " . $ImagePath . "</h1>" ; foreach( $ImageFileList as $ImageInfo ) { $ImageSizeInfo = getimagesize ( $ImageInfo [ 'FullFileName' ]); echo "<h3>" . $ImageInfo [ 'FileName' ]. "</h3>" ; echo "<img src=\"" . $ImageInfo [ 'FullFileName' ]. "\" width=\"" . $ImageSizeInfo [ 0 ]. "\" height=\"" . $ImageSizeInfo [ 1 ]. "\">" ; } function GetFilesFromDir ( $FilePath , $IndexFunc = "filemtime" , $UniqueValues = true ) { $PathHandle = opendir ( $FilePath ); if ( $PathHandle === false ) { echo "GetFilesFromDir(): Could not read Directory ( " . $PathHandle . ")" ; return false ; } $FileList = array(); while ( false !== ( $FileName = readdir ( $PathHandle ))) { $FullFileName = $FilePath . $FileName ; if(! is_dir ( $FullFileName )) { if( function_exists ( $IndexFunc )) { $FileIndex = call_user_func ( $IndexFunc , $FullFileName ); } else { echo "GetFilesFromDir(): " . $IndexFunc . " ist keine Function" ; return false ; } if( $UniqueValues ) { $FileIndex .= "_" . md5 ( $FullFileName ); // Verhindern von Array Rewrite } $FileList [ $FileIndex ] = array ( "FileName" => $FileName , "FullFileName" => $FullFileName // Hier optional weitere Informationen von Datei (Mime-Typ, Dateigröße, ...) ); } // if(!is_dir($FullFileName)) } // while (false !== ($FileName = readdir($PathHandle))) return $FileList ; } ?> + Multi-Zitat Zitieren
#4 1. Juni 2009 AW: Bilder aus Verzeichnis auslesen und nach Datum sortieren oder so: PHP: <? php define ( 'SCANDIR_SORT_ASC' , 1 ); // sortiert von klein nach groß define ( 'SCANDIR_SORT_DESC' , 2 ); //sortiert von groß nach klein define ( 'SCANDIR_SORT_INCLUDE_DIRS' , 4 ); // auch ordner mit aufnehmen und sortieren function scandir_sort ( $dir , $callback , $flags = null ){ if( $flags === null ) $flags = 5 ; if(! is_callable ( $callback )) { trigger_error ( __FUNCTION__ . '(): sort-callback ist ' . 'keine funktion' , E_USER_WARNING ); return false ; } if(! is_dir ( $dir )) { trigger_error ( __FUNCTION__ . '(): "' . htmlspecialchars ( $dir ) . '" ist kein ordner' , E_USER_WARNING ); return false ; } $dir = str_replace ( '\\' , '/' , realpath ( $dir )) . '/' ; $arguments = func_get_args (); unset( $arguments [ 1 ], $arguments [ 2 ]); if(!(@ $files = scandir ( $dir ))) { trigger_error ( __FUNCTION__ . '(): ordner "' . htmlspecialchars ( $dir ) . '" konnte nicht ausgelesen werden' , E_USER_WARNING ); return false ; } $assoc = array(); foreach( $files as $file ) { $file = $dir . $file ; if(( $flags & 4 ) != 4 && is_dir ( $file )) continue; $arguments [ 0 ] = $file ; $index = call_user_func_array ( $callback , $arguments ); if( $index === false ) continue; $assoc [ $index . $file ] = basename ( $file ); } unset( $files ); $sortFunc = ( $flags & 1 == 1 ) ? 'ksort' : 'krsort' ; $sortFunc ( $assoc , SORT_STRING ); return array_values ( $assoc );} ?> die flags kann man mit nem bit-operator angeben beispiel: PHP: $files = scandir_sort ( './' , 'filectime' , ~ SCANDIR_SORT_INCLUDE_DIRS ); liefert nur datein (keine ordner) PHP: $files = scandir_sort ( './' , 'filectime' , SCANDIR_SORT_DESC & ~ SCANDIR_SORT_INCLUDE_DIRS ); liefert nur datein (keine ordner) und sortiert absteigend (neuste zuerst) ---- alle parameter die du nach den flags angibst werden an den callback gesendet: PHP: $file = scandir_sort ( './' , 'mein_callback' , null , 'hallo' );function mein_callback ( $datei , $ausgabe ){ print $ausgabe . "\n" ; // hallo return 1 ;} der erste parameter ist aber immer die datei! für deine zwecke hab ich noch die entsprechende funktion erstellt: PHP: <? php function filectime_image ( $file , $check = false ){ $imgExt = array( 'jpg' , 'jpeg' , 'gif' , 'png' ); $ext = strtolower ( substr ( $file , strrpos ( $file , '.' ) + 1 )); if(! is_file ( $file ) || ! in_array ( $ext , $imgExt ) || ( $check === true && !(@ getImageSize ( $file )))) return false ; return filectime ( $file );} ?> beispiel: PHP: $images = scandir_sort ( './' , 'filectime_image' , SCANDIR_SORT_DESC & ~ SCANDIR_SORT_INCLUDE_DIRS ); liefert alle bilder absteigend sortiert. wenn du testen willst ob es sich wirklich um bilder handelt kannst du das ganze auch so machen: PHP: $images = scandir_sort ( './' , 'filectime_image' , SCANDIR_SORT_DESC & ~ SCANDIR_SORT_INCLUDE_DIRS , true ); --- ich hoff mal das du da durchsteigst + Multi-Zitat Zitieren