Last active
September 22, 2016 14:14
-
-
Save mbaersch/3fd34c345764aa28e7f84ade252649ec to your computer and use it in GitHub Desktop.
PHP Script zum Löschen verwaister Seiten, Kategorien und Produkte aus einem Collmex-Shop
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/* Collmex Cleanup: Alte Collmex-Shop-Dateien vom Server entfernen | |
Version 1.0.0.1 vom 21.09.2016 | |
M. Baersch, gandke marketing & software gmbh - www.gandke.de | |
*/ | |
// Tragen Sie hier das Passwort ein, dass zum Starten der gewaehlten Aktion angegeben werden muss. Es dient dem Schutz Ihres Shops! | |
// Ohne Nutzung eines Kennworts kann jeder das Script aufrufen und dadurch Dateien loeschen. Nehmen Sie uns diese Huerde daher bitte | |
// nicht krum. Geben Sie ein Kennwort (welches kein " enthalten sollte) zwischen den Anfuehrungszeichen in der naechsten Zeile ein. | |
$setup_kennwort = "" ; | |
// Das Script kann Dateien mit bestimmten Worten im Dateinamen ignorieren, so dass z. B. Verifikationsdateien von Google, Dr. Malware | |
// oder anderen Diensten nicht geloescht werden, obschon diese aelter sind als das angegebene Grenzdatum. Damit Sie dies nicht immer | |
// wieder neu definieren muessen, wenn es bestimmte Dateien zu schuetzen gilt, kann hier eine Vorgabe eingetragen werden. Im | |
// Zweifelsfall einfach leer lassen und checken, was eine Auflistung der gefundenen Dateien zurueckliefert. Zur Verwendung ganze | |
// Dateinamen oder Fragmente durch ein | getrennt in Klammern eingeschlossen hier eintragen. | |
// Beispiel (gemeinsames_fragment_aus_mehreren_dateinamen|ganzer_dateiname1|ganzer_dateiname2|ganzer_dateiname3) | |
$setup_ausnahmen = "(google|drmalware)" ; | |
?> | |
<!doctype html><html lang="de"> | |
<head> | |
<meta name="viewport" content="width=device-width, initial-scale=1"> | |
<meta name="robots" content="noindex,nofollow"> | |
<title>Collmex Shop bereinigen</title> | |
<style type="text/css"> | |
body{font-family:Verdana,Arial,sans-serif;background:#ddd;text-align:center;font-size:89%;color:#222} | |
#content{margin:20px auto;text-align:left;max-width:800px;padding:2em;border:1px solid #222;background:#fff} | |
small{font-size:0.8em} | |
label{font-weight:bold} | |
input,select,textarea{margin:6px 0;min-width:180px} | |
#start{font-size:1,2em;padding:8px 28px} | |
</style> | |
</head> | |
<body> | |
<div id="content"> | |
<?php | |
/**********************************************************************/ | |
if ($setup_kennwort == "") die('Bitte ein Kennwort im Quelltext des Scripts eintragen (siehe Kommentar), damit es verwendet werden kann!') ; | |
$del_dtm = $_POST['del_dtm'] ; | |
$psw = $_POST['p'] ; | |
$action = $_POST['action'] ; | |
$ausnahmen = $_POST['ausnahmen'] ; | |
$ddayf = date("d.m.Y") ; | |
if (!isset($psw)) { | |
//Formular ausgeben | |
echo '<h1>Alte Collmex-Shop-Dateien löschen</h1>' ; | |
echo '<h2>Achtung!</h2>' ; | |
echo '<p>Dieses Script löscht bei Auswahl der Aktion <em>Löschen</em> statt <em>Auflisten</em> <b>unwiederbringlich</b> alle '. | |
'HTML-Dateien im aktuellen Verzeichnis des Scripts, die älter sind als das angegebene Datum!</p>' ; | |
echo '<p>Diese Funktion dient dazu, nach einem <b>vollständigen Hochladen des Collmex-Shops</b> alle HTML-Dateien zu entfernen, '. | |
'die nicht aktualisiert wurden und daher Seiten, Produkte oder Kategorien enthalten, die nicht mehr angeboten oder umbenannt wurden.' ; | |
echo '<p>Der Einsatz geschieht auf eigene Gefahr! Vor dem ersten Einsatz wird dringend empfohlen, eine Sicherung aller Dateien im behandelten Verzeichnis anzufertigen.</p>' ; | |
echo '<h2>Dateien suchen / löschen</h2>' ; | |
echo '<form method="post">' ; | |
echo '<label for="del_ftm">Grenzdatum</label><br /><input type="text" name="del_dtm" value="'.$ddayf.'"><br />' ; | |
echo '<small>Vergleichsdatum für den Vorgang eingeben. Alle HTML-Dateien, die älter sind, werden aufgelistet bzw. gelöscht.</small><br /><br />' ; | |
echo '<label for="ausnahmen">Ausnahmen</label><br /><textarea name="ausnahmen">'.$setup_ausnahmen.'</textarea><br />' ; | |
echo '<small>Bei Bedarf kann hier ein Muster eingegeben werden, nach dem HTML-Dateien identifiziert werden können, '. | |
'die nicht betroffen sein sollen. Infos dazu siehe Kommentare im Script.</small><br /><br />' ; | |
echo '<label for="p">Kennwort</label><br /><input type="password" name="p"><br />' ; | |
echo '<small>Kennwort zur Authentifizierung für den Vorgang eingeben.</small><br /><br />' ; | |
echo '<label for="action">Aktion wählen</label><br /><select name="action"><option value="list">Auflisten</option><option value="delete">Löschen</option></select><br /><br /><br />' ; | |
echo '<input id="start" type="submit" value="Vorgang starten">' ; | |
echo '</form>' ; | |
} else { | |
if ($psw != $setup_kennwort) die('Kennwort falsch, Sorry!') ; | |
$deldt = date($del_dtm) ; | |
$ddtt = strtotime($ddayf); | |
$deltt = strtotime($deldt); | |
if ($ddtt < $deltt) die('Das Datum liegt in der Zukunft, da löschen wir lieber nichts!') ; | |
if ($action === 'delete') $was = "löschen"; else $was = 'auflisten' ; | |
echo "<h1>HTML-Dateien $was, die älter als $deldt sind</h1><p>" ; | |
$x = 0 ; | |
$skip = 0 ; | |
foreach (glob("*.html") as $filename) { | |
$fd = filemtime($filename) ; | |
$fdf = date('d.m.Y', $fd) ; | |
$fdtt = strtotime($fdf); | |
if (($deltt > $fdtt) && (($ausnahmen == '') || !preg_match('/'.$ausnahmen.'/i', $filename))) { | |
echo "$filename ($fdf)<br />" ; | |
$x++ ; | |
if ($action === 'delete') unlink($filename); | |
} else $skip++ ; | |
} | |
echo "</p><p><b>$x Dateien</b> ($skip übergangen / aktuell)</p>" ; | |
} | |
?> | |
</div> | |
</body> | |
</html> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Es ist weder eine komplexe Aufgabe noch eleganter Code, aber es erfüllt seinen Zweck :) Ich kenne faktisch keinen Collmex-Shop, bei dem keine HTML-Leichen auf dem Server existieren, die durch Umstrukturierung entstanden und alt genug sind, um Traffic aus Suchmaschinen zu erhalten, die dann auf nicht lieferbaren Produkten und / oder Seiten mit veraltetem Design o. Ä. landen. Wer nicht regelmäßig per FTP aufräumen mag, kann ersatzweise dieses Script nutzen.
Bedienungshinweise und weitere Infos unter http://blog.gandke.de/CollmexShop+Von+Altlasten+Befreien.aspx