nach Datum sortieren - eigene Sortierung

Also die Fehlerausgabe und <?php print $a; ?> sagt folgendes:

Code:
25.03.2009 (1).JPG
Warning: exif_read_data() [function.exif-read-data]: Unable to open file in C:\xampp\htdocs\neu\fotoalbum_samuel.php on line 34
*schnipp*

Dann stimmt vielleicht der Pfad nicht...

Davon abgesehen dachte ich mein &a_exif wäre jetzt ein Array da exif_read_data() eien Array bildet?
Manual:"Rückgabewerte - Gibt ein assoziatives array zurück"

Ja und? Wer hindert Dich daran, die benötigte Information aus diesem Array herauszupicken, wie Du es in der Sortierfunktion ja auch machst, und diese dann mit in das $files-Array zu packen?

LG
 
Der Pfad ("./bilder/samuel/".$filname) stimmt auf jeden fall.
Doch wenn ich mir die Ausgabe von <? print $a; ?> mal genauer ansehe dann
scheint es das $a in der Funktion "datum" alle einträge des Array "files" ohne Absatz direkt nacheinander klatscht und das ganze in "Klartext" wohl so aussehen muss:

Code:
./bilder/samuel/xx.xx.xxx.jpgxy.xxx.xxx.jpgyz.yz.yzyz.jpg...

kannst du mir vielleicht n bissl unter die Arme greifen, biiiiitttttttteeee?
 
Doch wenn ich mir die Ausgabe von <? print $a; ?> mal genauer ansehe dann
scheint es das $a in der Funktion "datum" alle einträge des Array "files" ohne Absatz direkt nacheinander klatscht

Das liegt daran, dass Du bei Deiner Testausgabe ja auch keinerlei Zeilenumbrüche oder sonstiges machst und der Fehler offensichtlich nicht bei jeder Datei auftritt. Mach vernünftige Testausgaben, an denen Du sehen kannst, bei welchen Dateien der Aufruf fehlschlägt und bei welchen nicht. Dazu könnte man z.B. mal prüfen, ob der Rückgabewert von exif_read_data() false ist. Vielleicht sind auch die Dateirechte nicht richtig gesetzt. Debuggen musst Du schon selbst, aus der Ferne kann niemand sagen, warum die Dateien auf Deinem Server nicht geöffnet werden können.

biiiiitttttttteeee?

Und lass bitte das Geschrei.

LG
 
EDIT

Ich habs mir ja fast gedacht, es liegt an dem Ordner der mit im Array $files ist.
Den habe ich jetzt mal raus genobben und endlich eine Ausgabe ohne Fehlermeldung ;-)

PHP:
function get_path_content($path) 
{
     $verzeichnishandle = @opendir("$path");
     rewinddir($verzeichnishandle);
     $files = array();
     while ($file = readdir($verzeichnishandle)) {
          if($file != "." and $file != "..") array_push($files, "$file");

	 }
array_splice($files,9);

	function datum($a, $b) 
	{
		$a_exif = exif_read_data("./bilder/samuel/".$a);
		if ($a_exif[DateTime] != false){
		$a_datum_time = explode(' ', $a_exif[DateTime]);
		$a_datum = explode(':', $a_datum_time[0]);}
		

		$b_exif = exif_read_data("./bilder/samuel/".$b);
		if ($b_exif[DateTime] != false){
		$b_datum_time = explode(' ', $b_exif[DateTime]);
		$b_datum = explode(':', $b_datum_time[0]);}
		
		return mktime(0,0,0,$a_datum[1],(int)$a_datum[0],$a_datum[2]) <= mktime(0,0,0,$b_datum[1],(int)$b_datum[0],$b_datum[2]);
	}

	usort($files, 'datum');
		
		
	
		
     return $files;
}

Ich denke nur das meine Methode mit array_splic nicht die eleganteste ist.
Da gibt es doch sicher bessere Wege?
Kann ich anstatt der 9 dort auch so vorgehen:

array_splice($files, (count ($files)) -1) oder so ähnlich?

GANZ SELTSAM:

Aber auch ohne Fehlermeldungen jetzt, die Sortierung (usort) schlägt nur teilweise an.

Komplette Ausgabe:

Code:
Foto Big
30.01.2009 (1).JPG
Foto Big
30.01.2009 (2).JPG
Foto Big
25.03.2009 (1).JPG
Foto Big
25.03.2009 (2).JPG
Foto Big
25.03.2009 (3).JPG
Foto Big
21.02.2009.JPG
Foto Big
14.03.2009.JPG
Foto Big
06.01.2009.jpg
Foto Big
04.02.2009.JPG

Ausgabe ohne usort:

Code:
Foto Big
04.02.2009.JPG
Foto Big
06.01.2009.jpg
Foto Big
14.03.2009.JPG
Foto Big
21.02.2009.JPG
Foto Big
25.03.2009 (1).JPG
Foto Big
25.03.2009 (2).JPG
Foto Big
25.03.2009 (3).JPG
Foto Big
30.01.2009 (1).JPG
Foto Big
30.01.2009 (2).JPG


ICH HABS !! :D:D:D

Da war noch ein bissl "return mktime" anzupassen , vor den "array_splice" habe ich noch $count = count($files) eingefügt um
splice auch dynamisch zu halten: array_splice($files, $count-1)

Auch wenns nun funktioniert, über Verbesserungsvorschläge freue ich mich immer.

Und dickes Danke an knuddel*
 
Zuletzt bearbeitet:
Ich muss ein neuen Post beginnen.

Leider nehmen die Probleme kein Ende.

Das Script ist jetzt auf dem Server wo es hin sollte und gibt im Gegenstaz zu meinen Hausversuchen mit Xampp wieder Fehlermeldungen aus:

Code:
Warning: exif_read_data() [function.exif-read-data]: Not a file in /home/www/web144/html/fotoalbum_samuel.php on line 34

Warning: exif_read_data() [function.exif-read-data]: Not a file in /home/www/web144/html/fotoalbum_samuel.php on line 34

Warning: exif_read_data() [function.exif-read-data]: Not a file in /home/www/web144/html/fotoalbum_samuel.php on line 34

Warning: exif_read_data() [function.exif-read-data]: Not a file in /home/www/web144/html/fotoalbum_samuel.php on line 34

Warning: exif_read_data() [function.exif-read-data]: Not a file in /home/www/web144/html/fotoalbum_samuel.php on line 34

Warning: exif_read_data() [function.exif-read-data]: Not a file in /home/www/web144/html/fotoalbum_samuel.php on line 34

Warning: exif_read_data() [function.exif-read-data]: Not a file in /home/www/web144/html/fotoalbum_samuel.php on line 34

Warning: exif_read_data() [function.exif-read-data]: Not a file in /home/www/web144/html/fotoalbum_samuel.php on line 34

Warning: exif_read_data() [function.exif-read-data]: Not a file in /home/www/web144/html/fotoalbum_samuel.php on line 34

Warning: exif_read_data() [function.exif-read-data]: Not a file in /home/www/web144/html/fotoalbum_samuel.php on line 34

Warning: exif_read_data() [function.exif-read-data]: Not a file in /home/www/web144/html/fotoalbum_samuel.php on line 34

Warning: exif_read_data() [function.exif-read-data]: Not a file in /home/www/web144/html/fotoalbum_samuel.php on line 34

Warning: exif_read_data() [function.exif-read-data]: Not a file in /home/www/web144/html/fotoalbum_samuel.php on line 34

Warning: exif_read_data() [function.exif-read-data]: Not a file in /home/www/web144/html/fotoalbum_samuel.php on line 34

Warning: exif_read_data() [function.exif-read-data]: Not a file in /home/www/web144/html/fotoalbum_samuel.php on line 40

Doch die Dateien und Ordnerstrucktur sieht auf dem Server wie bei mir auf dem Rechner aus. Hatte noch nie Problem, wenn was hier gelaufen ist dann ging es auch dort:suspekt:

Also ich hab jetz auch auf dem Server mal print"./bilder/samuel/$a<br/>" Ausgeben lassen und schonwieder,
der verdammte Ordner "thumbs" macht Probleme.
Auf dem Serer muss der wohl an anderer Stelle als der letzten Position in das Array rutschen.

Wie bekomm ich entgültig ruhe mit dem Ordner im Array ohne ihn ganz zu löschen?
 
Zuletzt bearbeitet:
Hi,

Also ich hab jetz auch auf dem Server mal print"./bilder/samuel/$a<br/>" Ausgeben lassen und schonwieder,
der verdammte Ordner "thumbs" macht Probleme.
Auf dem Serer muss der wohl an anderer Stelle als der letzten Position in das Array rutschen.

Wie bekomm ich entgültig ruhe mit dem Ordner im Array ohne ihn ganz zu löschen?

dann lass den Unfug mit array_splice() und sorge dafür, dass Verzeichnisse gar nicht erst in das $files-Array aufgenommen werden, indem Du nicht nur "." und ".." herausfilterst, sondern alles, was ein Verzeichnis ist.

LG
 
Hi & Danke.

Habe heute erst wieder hier rein geschaut.
Nach langem Suchen am Wochenende hatte ich dann auch irgendwann is_dir gefunden.
Meist hab ich nur das Problem die richtige Vorsefinierte Funktion zu finden.
Das Maual hilf auch nur wenn man die Funktion schon kennt. Suchst du da
nach "php Ordner ausschließen" o.ä. gibt es keine Treffer und Google
überschüttet mich zu gerne mit Schrott.

Da gibt es sicher uach kein Recept gegen, oder?
Nur die Richtigen Suchbegriffe zur Hand haben, nicht war?


Lieben Dank nochmal an dich und alle anderen Helferlein!
 
Hi,

Das Maual hilf auch nur wenn man die Funktion schon kennt.

warum? Das PHP-Manual ist doch wirklich schön untergliedert. Ich kenne bei weitem nicht alle Funktionen auswendig. Wenn ich dann z.B. eine Funktion suche, mit der ich prüfen kann, ob eine Datei ein Verzeichnis ist, stöbere ich logischerweise in den Dateisystemfunktionen. Diese Übersicht durchzulesen dauert ja nun wirklich nicht so lange. Google ist nicht immer das ultimative Mittel...

LG
 
Da gibt es sicher uach kein Recept gegen, oder?
Nur die Richtigen Suchbegriffe zur Hand haben, nicht war?

Mag sich dreist anhören, aber einfach mal das Manual komplett überfliegen :-(

Es geht ja nicht darum, in 2 Tagen alles auswendig zu Können, aber man hat so im Hinterstübchen, was man mit der jeweiligen Sprache alles von Hause aus erledigen kann, und vergeudet später keine Zeit mit Sachen, welche man neu erfindet, weil man nicht wusste, dass sie bereits implementiert sind :)
 
Zurück