Es ging mir eigentlich darum, hier liegt das Script bei den Tests,
C:\xampp\htdocs\example\wordpress\wp-content\plugins\neuer-ordner
C:\xampp\htdocs\wordpress\wp-content\plugins\test-verzeichnis
und der Durchlauf sollte hier beginnen (beginnt da nun augenblicklich auch):
C:\xampp\htdocs\example\wordpress
C:\xampp\htdocs\wordpress
Weil das den Root von den beiden entspricht:
"http://example.localhost"
"http://localhost/wordpress/"
Rufe die Datei jetzt aber noch so auf, sind ja nur Tests bislang. Überlege noch, wie ich das mit den Hooks mache. Wenn zu sehr an WP gekoppelt, würde es ja im Ernstfall zusammen mit WP den Dienst quittieren. Liefert nun erst einmal die Dateien als Liste, die in den letzten 24 Stunden bearbeitet wurden.
<?php
/**
* Ist noch nicht eingebunden und lässt sich noch von außen aufrufen.
*/
$fuer_ausgabe = new Sortiere_Alle_Dateien();
echo $fuer_ausgabe->sortiere_files();
class Sortiere_Alle_Dateien {
private $derpfad;
private $teilebei;
private $zeitraum;
private $gefunden;
private $wieviel;
private $verwende;
private $gebeaus;
// Alle Verzeichnisse durchlaufen
private function durchlaufe_alle_files($pfad) {
$meinefiles = array();
$filearray = array( ".", "..");
$filedaten = opendir($pfad);
while (($file = readdir($filedaten)) !== false) {
if ($file != in_array($file, $filearray)) {
if (is_dir($pfad."/".$file)){
$alle = $this->durchlaufe_alle_files($pfad."/".$file);
if ($alle != in_array($alle, $filearray)) {
foreach ($alle as $veraenderte){
if (is_file($veraenderte)) {
$meinefiles[] = $veraenderte;
}
}
}
}
else {
$meinefiles[] = $pfad."/".$file;
}
}
}
closedir($filedaten);
return $meinefiles;
}
public function sortiere_files() {
// Site Root ermitteln
$this->derpfad = getcwd();
$this->teilebei = DIRECTORY_SEPARATOR ."wp-content";
if (strpos($this->derpfad, $this->teilebei) !== false) {
$pfadarr = explode($this->teilebei, $this->derpfad);
$this->derpfad = $pfadarr[0];
}
$this->gefunden = $this->durchlaufe_alle_files($this->derpfad);
$this->wieviel = count($this->gefunden);
$this->gebeaus = "";
if ($this->wieviel >= 1) {
$this->zeitraum = time() -86400; // 1 Tag 86400 | 2 Tage 172800 usw.
$this->gebeaus .= "<h2>Insgesamt ".$this->wieviel." Dateien gefunden</h2>\n";
$this->gebeaus .= "<p><strong>In den letzten 24 Stunden bearbeitete Dateien:</strong></p>\n";
$this->gebeaus .= "<ol>\n";
foreach($this->gefunden as $this->verwende){
if (filemtime($this->verwende) >= $this->zeitraum) {
$this->gebeaus .= "<li>".date("d.m.Y", filemtime($this->verwende)).
" | ".$this->verwende."</li>";
}
}
$this->gebeaus .= "<ol>\n";
}
return $this->gebeaus;
}
}
?>
Alles anzeigen
Dirname hatte ich in anderen Scripts auch oft verwendet, wüsste jetzt nicht welche Variante oder Funktion die bessere wäre.