by Riebensiel » 31. May 2005 14:05
Hallo Jakimo 72,
vielen Dank nochmal. Ich habe es ausprobiert. fopen mag funktionieren aber opendir nicht, bei genauerem Überlegen ist das wohl auch ganz gut so.
Meine Aufgabe ist es, Dateien aus verschiedenen Verzeichnissen mit dem gleichen JS zu verarbeiten, wobei sich die Verzeichnisinhalte jederzeit ändern und jederzeit Verzeichnisse dazu kommen oder wegfallen oder verschoben werden können, das Auslesen der Verzeichnisse muss also zur Laufzeit geschehen und aktualisierbar sein. Soweit ich es verstanden habe, kann JS keine Verzeichnisse auslesen und mir ist auch nicht bekannt, ob JS solche Anweisungen wie getimagesize kennt, ich glaube eher nicht. Also mache ich es mit PHP und übergebe die entsprechenden Dateinamen und Zusatzinfos in einem zweidimensionalen Array an JS So kann ich die Pfade in JS rekonstruieren.
Mein Problem dabei war, dass ich in PHP Pfade verwenden musste, um opendir und readdir machen zu können. In JS kann ich mit den Pfaden aber nichts anfangen, da brauche ich eine URL, um auf die Dateien zugreifen zu können.
Gelöst habe ich es jetzt so:
Wenn ich z.B. das Verzeichnis c:/Verz/Verz/MP3 bearbeiten will, lege ich in der httpd.conf ein Alias namen /c an, das auf c:/ verweist. In PHP heißt der Pfad dann c:/Verz/Verz/MP3 und an JS übergebe ich die URL /c /Verz/Verz/MP3
So brauche ich nur eine endliche Anzahl von Alias(en?) in der httpd.conf, nämlich höchstens soviele, wie ich LWs habe.
Die zu bearbeitenden Pfade schreibe ich in eine einfache TXT-Datei, die ich per PHP in ein dynamisches Array einlese. PHP liest die Verzeichnisse aus und wandelt nach oben beschriebenem Muster die Pfade in URLs und gibt die URLs und die jeweiligen Verzeichnisinhalte weiter. So brauche ich das HTML Dokument nicht anzufassen, wenn ich zusätzliche Verzeichnisse in die Arbeitsliste eintrage oder Verzeichnisinhalte sich ändern. Wenn ich in das HTML Dokument noch ein zyklisches reload oder refresh einbauen würde, würde der User noch nicht einmal merken, dass sich was geändert hat. Und da ich in der httpd.conf die URLs auf Vorrat angelegt habe, brauche ich auch diese Datei nicht ständig zu editieren und muß den Server auch nicht ständig neu durchstarten. Das Einzige, was ich noch nicht ausprobiert habe, ist die Situation, dass ich die Arbeitsliste gerade editiere, wenn ein User auf die Seite geht, selbst dann müsste es aber konsistent sein, weil die Datei vermutlich in dem Zustand gelesen werden würde, die sie hatte, als ich sie zum Editieren geöffnet habe.
Im Grossen und Ganzen bin ich mit meiner Lösung ganz zufrieden, eine kleine Baustelle gibt es noch bei der Übergabe von zweidimensionalen Arrays von PHP an JS, aber auch dafür wird es eine Lösung geben...
Schönen Gruß aus HH
Rudolf