Hallo Dennis,
$quelle = '../admin/2004_03.txt';
$ziel = '2004/2004_03.txt';
Relative Pfade sind mit Vorsicht zu geniessen, sie sind relativ zum Skript.
Ich bevorzuge für meine Nutzdaten ein Datenverzeichnis ausserhalb der document-root und ausserhalb des Skriptbereiches.
if(file_exists($quelle)) {
if(rename($quelle, $ziel)) {
echo "Kopiert.";
}
}
=> Klappt nicht! Warnmeldung:
Warning: rename(../admin/2004_03.txt,2004/2004_03.txt) [function.rename]: No such file or directory in C:\_TPP_Engine\_base\apache_files\www\s4.cybton.com\gaestebuch\archiv\index.php on line 28
Sieht eigentlich gut aus, macht bei mir
Fedora Linux Core 2
Apache 2.0.49
PHP 4.3.4
(Standardkonfiguration der Installation) was es soll.
Unter Windows kann dies eventuell an fehlenden Löschrechten für die Datei liegen. Darf apache die Datei löschen?
Initialisiere ein Array mit Einträgen für jeden Monat mit dem Wert false für jeden Eintrag
Für alle Dateien in Deinem Verzeichnis
Siehe Beispiel bei http://www.php.net/manual/de/function.readdir.php
Ermittle den Monatsanteil des Dateinamens
mit substr() http://de.php.net/manual/de/function.substr.php
Setze einen entsprechenden Arrayeintrag von false auf true
$monate[$akt_monat] = true;
Nächste Datei
Da bin ich jetzt nicht ganz mitgekommen. Wie meinst du das?
Kannst du mir da mal noch etwas Code geben?
Siehe oben :-)
Bitte bedenke, dass es auch verschiedene Jahre gibt, also z.B. geht es um:
2003_05.txt
2003_06.txt
[...]
2004_04.txt
Möchtest Du für jedes Jahr eine entsprechende Übersicht?
Dann arbeite mit zweidimensionalen Arrays.
Extrahiere Jahr und Monat aus dem Dateinamen. Damit hast Du die Indizes Deines zweidimensionalen Arrays.
Freundliche Grüsse,
Vinzenz