#!!!!!!! WARNUNG: Nie auf öffentlich verfügbaren Seiten verwenden! WARNUNG !!!!!!!
Das Script verschiebt alle Waisen
-Dateien mit bestimmten Marker
-Extensions unterhalb eines Start
-Ordners in einen Orphans
-Ordner,
wenn diese Marker-Dateien keinmal/nie in Dateien genannt wurden, die eine in Linker
definierte Extension aufweisen.
Die Dateien inklusiver der Ordnerstrukturen gehen nicht verloren. Sie werden inklusive ihrer bisherigen Ordnerstruktur nur verschoben.
Das php-Programm erfasst alle Dateien, die eine der bei --marker=
angegebenen Extensionen in ihrem Dateinamen haben.
Die Dateien müssen dabei im Ordner liegen, dessen absoluter oder relativer Dateipfad bei --start=
angegeben wurde.
Ein absoluter Dateipfad beginnt mit /
. Der relative Dateipfad beginnt mit einem Buchstaben oder ../
und meint einen Ordner relativ zur aktuell vorliegenden Datei.
Das Programm prüft, ob die Namen der erfassten Dateien inklusive ihrer Extension als Text in mindestens einer Linker-Datei vorkommen.
Zu den Linker-Dateien zählt jede Datei, die eine Extension aus der Liste --linker=
hat.
Alle Dateien mit Marker-Extension, deren Namen nicht in den Linker-Dateien gefunden wurden, werden in den Orphans
-Ordner verschoben.
Die Datei WebOrphanCleaner.php
erzeugt eine Webseite mit einem Eingabe-Formular,
dass die Parameter für das Konsolenprogramm OrphanCleaner.php
abfragt.
Nach Eingabe des Ergebnisses der Kopfrechenaufgabe und Abschicken des Formulars
wird OrphanCleaner.php
aufgerufen und ausgeführt.
WebOrphanCleaner.php
ist die GUI (Geniale Unbedarften Inspektion) durch OrphanCleaner.php
Ich nutze als lokale Entwicklungsumgebung DDEV, die auf Docker aufbaut. Der Ordner enthält die genutzte Konfiguration.
Die Dateien OrphanCleaner.php
und WebOrphanCleaner.php
im Root-verzeichnis bzw.im Ordner web
sind identisch.
Sollten sie es nicht sein, dann wenden sie sich bitte an den Entwickler, um zu klären, welche die richtig ist.
nach dem Aufruf in der Konsole/PowerShell/Bash/Terminal von ddev start
können sie im Browser https://orphancleaner.ddev.site/weborphancleaner.php
aufrufen, um durch Angabe eine relativ verfügbaren Ordners wie zum Beispiel ../Test
eine Orphan-Dtai-Entfernung durchführen zu können.
- Hinweis wegen Alter Version: Die Umbenennung ist nicht länger erforderlich, weil sie keinen wirklichen zusätzlichen Schutz bietet.
- Die Webseite
WebOrphanCleaner.php
setzt voraus, dass das php-HauptprogrammOrphanCleaner.php
im gleichen Ordner wie sie selbst liegt. - Man kann das Hauptprogramm auch über das Betriebssystem auch in einer Konsole/Terminal/Bash/KommandozeilenEingabe aufrufen werden.
Das Hauptprogramm wie das Webformular kennt 4 Parameter.
- --start
- Default: Verzeichnis des Aufrufs
- Funktion: relativen oder absoluten Pfad für die Dateibearbeitung angeben.
- --linker
- Default:
- Funktion: Comma-separierte Liste mit Dateien, die den Dateinamen als Text bzw. in einem Linktext enthalten könnten.
- --marker
- Default:
- Funktion: Comma-separierte Liste mit Dateien, die den Dateinamen als Text bzw. in einem Linktext enthalten könnten.
- --orphans
- Default: orphans
- Funktion: Teil des Namen des Ordners, in welches ungenutzte Dateien verschoben werden.
Der vollständige Ordnername besteht aus einem Datum-Zeit-Code, dem hier erwähnten Namen und einer Nummer.
Er hätte z.B. am 15. Aug. 2021 un 15:53:21 das folgende Aussehen:
20210815-155324-orphans_0/
.
- --boxunicase
- Default: true
- Funktion: Wenn es auf true gesetzt ist, dürfen die 26 Buchstaben von A-Z in der Groß- und Kleinschreibung variieren. Eine Datei mit dem Namen Test.jpg wird also NICHT verschoiben, wenn irgendwo ein Link mit 'test.JPG' oder 'test.jpg' zu finden ist. Wenn der Wert auf false gesetzt ist, wird auf gleiche Groß- und Kleinschreibung in Link und Dateinamen geachtet.
Im Webformular muss man noch das Feld mit der ultimativen Berechnung für die Frage aller Fragen ausfüllen, damit das Hauptprogramm gestartet wird. (Schutz dagegen, dass der Finger mal wieder schneller klickt als der Developer denken kann.)
Bei jedem Aufruf wird im Startordner ein Ordner für die verwaisten Dateien angelegt, der eine Datumsangabe im Namen trägt. In diesen Ordner werden die verwaisten Dateien unter Beibehaltung ihrer relativen Ordnerstruktur verschoben. Beim zweiten Aufruf wird natürlich auch der alte Ordner der verwaisten Dateien nach verwaisten Dateien durchsucht.
Einfach den gesamten Ordner irgendwo in ein Webverzeichnis packen und die Datei WebOrphanCleaner.php
im Browser aufrufen.
Beispiel:
https://dueddelei.ddev.site/typo3conf/ext/webhelp/Cleaner/WebOrphanCleaner.php
bzw. https://<Domain-Adresse>/<Ordner-ab-webroot-Verzeichnis>/WebOrphanCleaner.php
Geben sie den aufzuräumenden Ordner mit seiner absoluten Ordneradresse an oder mit ../
als Pfad relativ zum Ordner von WebOrphanCleaner.php
.
Die Bedeutung der Eingabe-Felder ist analog wie oben bzw. auf der Webseite beschrieben.
- Öffnen sie die Konsole ((Bash, PowerShell, ...)
- Nutzen Sie den
cd
-Befehl, um in den Ordner dieserReadMe.md
-Datei zu kommen. - Die Verfügbarkeit von php7.3+ in der Kommandozeile wird vorausgesetzt.
- Rufen sie folgenden Befehl auf, um den Test zu starten
$> php --start=
- Es muss ein neuer Ordner existieren. Dessen Name sollte aus einer Datumsangabe (
JahrMonatTag-StundeMinuteSekunde-
), aus dem Wortorphan
und aus einer Nummer bestehen. - In dem Ordner sollten nur Dateien zu finden sein, die das Wort 'Test' enthalten. (Da die Groß- und kleinschreibung von einzelnen Betriebssystemen unterschiedlich behandelt wird, bleibt der Aspekt groß-Kleinschreibung hier unberücksichtigt.)
- In dem anderen Ordnern diese Verzeichnisse, sollten keine Dateien mit dem Namen
Test
zu finden sein.
- Kopieren Sie den in den vorliegen Ordner. Jetzt sollte die vorherige Struktur wieder vorliegen.
- Löschen Sie den Ordner der verwaisten Dateien.
- Starten Sie den Test-Prozess erneut. Die Eingabe der verschiedenen Parameter erfolgt auf eigenen Gefahr.
(Sichern sie ihre wichtigen Daten regelmäßig und insbesondere vor Einführung eines Updates oder einer neuen
SaftwareSoftware.)
Der Author hat nur den Test mit $> php --start=
ausgeführt.
Das Programm kann auf bestimmten Betriebssystemen scheitern, wenn zum Beispiel das php unzureichende Rechts hat oder wenn es Abweichungen bei der Großkleinschreibung gibt oder ...
Jeder muss selber wissen, was er macht. Für Hinweise auf Programm- und/oder Rechtschreibfehler bin ich dankbar.
(c) 2021 Dr. Dieter Porth [email protected] (PHP-Programming) (c) 2021 Bartosz Skowronek (Design/Frontend)