JesusFreak777
Erfahrenes Mitglied
Hi Leute,
ich hab mir ein kleines Script gebastelt, das mir doppelte Dateien löschen soll!
Soweit funktioniert das auch, aber es löscht immer nur eine Datei! Warum?
Ich habe so ein kleines Backupsystem gebaut, das mit aus meiner Sidebar das Textfeld in regelmäßigen Abständen sichert! Langsam werden es aber viele Dateien (html) und da die meisten doppelt sind, habe ich mir gedacht, ich suche diese und lösche!
mein Script:
Ja ich weiß, es werden von meinen dateien nur die erste Zeile berücksichtigt! das ist auch momentan egal, weil ich den HTML-Code auch nur in eine Zeile packe -> [line0]: viel Text <br> mit Abzätzen...
Trotzdem brauch ich auch irgendwann mal dafür eine Lösung, evtl. hat jemand ne idee wie ich das unkompliziert lösen kann (dachte so an $html_file .= $link[$i].'/n' in ner forschleife, habe es aber noch nicht getestet)!
Vielen Dank
ich hab mir ein kleines Script gebastelt, das mir doppelte Dateien löschen soll!
Soweit funktioniert das auch, aber es löscht immer nur eine Datei! Warum?
Ich habe so ein kleines Backupsystem gebaut, das mit aus meiner Sidebar das Textfeld in regelmäßigen Abständen sichert! Langsam werden es aber viele Dateien (html) und da die meisten doppelt sind, habe ich mir gedacht, ich suche diese und lösche!
mein Script:
PHP:
//dateien in ein Array einlesen ($key => Dateiname.endung, $value => inhalt [eh nur ein paar notizen])
$bak = array();
$directory = "testdat";
$handle = opendir($directory);
while ($file = readdir ($handle)) {
if ($file != "." && $file != "..") {
$line = file($directory.'/'.$file);
$bak[$file] = $line[0];
}
} closedir($handle);
removeDuplicates($bak);
//meine dateien
echo "<pre>";
print_r($bak);
echo "</pre>";
//funktion die ich online gefunden habe, sollte doppelte einträge im array löschen, leicht abgeändert
function removeDuplicates($array, $dir) {
$counts = array_count_values($array);
//zeigt an wie oft +1 er löschen sollte [DEBUG]
echo "max ".max($counts);
foreach ($counts as $value => $counter) {
if ($counter > 1) {
//daten aus array entfernen
unset($counts[$value]);
//daten aus ordner löschen
unlink($dir.'/'.array_search($value, $array));
}
}
return array_keys($counts);
}
Ja ich weiß, es werden von meinen dateien nur die erste Zeile berücksichtigt! das ist auch momentan egal, weil ich den HTML-Code auch nur in eine Zeile packe -> [line0]: viel Text <br> mit Abzätzen...
Trotzdem brauch ich auch irgendwann mal dafür eine Lösung, evtl. hat jemand ne idee wie ich das unkompliziert lösen kann (dachte so an $html_file .= $link[$i].'/n' in ner forschleife, habe es aber noch nicht getestet)!
Vielen Dank