Hoster wechseln!
Zitat
mein hoster hat sich über die anzahl dateien geärgert!
Zitat
würdest du dieses skript vielleicht teilen?
:)
|
|
Quellcode |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 |
<?php
//Skript wandelt krpano Multiresolution-Verzeichnisstruktur in Ein-Ordner Strkutur um.
//Benennt alle Dateien um, löscht leere Verzeichnisse und passt XML an.
//Panorama Verzeichnis angeben
$pano = $_GET['pano'];
$path = $pano;
//Abbrechen, falls Verzeichnis anscheinend schon umgewandelt
$test = count(scandir("$pano/$pano.tiles"));
if ($test > 20){
echo "Anscheinend schon konvertiert. Beende Ausführung";
exit;
}
//Verzeichnisstrukutr rekursiv einlesen
function getDirContents($dir, &$results = array()){
$files = scandir($dir);
foreach($files as $key => $value){
$path = realpath($dir.DIRECTORY_SEPARATOR.$value);
if(!is_dir($path)) {
$results[] = $path;
} else if($value != "." && $value != "..") {
getDirContents($path, $results);
$results[] = $path;
}
}
return $results;
}
$dir = getDirContents("$path/$path.tiles");
$del_dirs = array();
//Alle eingelesenen Datein und Verzeichnisse durchgehen
foreach ($dir as $file){
if (strpos($file, "jpg")){
//Dateien umbennen für Ein-Ordner-Struktur
$oldname = $file;
$parts = explode(".tiles/", $file);
$new = str_replace('/', "_", $parts[1]);
$newname = $parts[0].".tiles/".$new;
rename($oldname, $newname);
echo "$oldname<br>$newname<br><br>";
}else{
//Wenn Verzeichnis, dann in Lösch-Liste schreiben
if (is_dir($file)) array_push($del_dirs, $file);
}
}
//Alle Verzeichnisse der Lösch-Liste löschen
foreach ($del_dirs as $dir){
rmdir($dir);
echo "<br>Lösche $dir";
}
//Ab hier Bearbeitung der XML Datei
$raw_xml = file("$path/$path.xml");
$image = 0;
foreach ($raw_xml as $line){
//testen ob im <image> Bereich
if (strpos($line, "<image")) $image = 1;
if (strpos($line, "</image")) $image = 0;
if ($image){
//Pfade ersetzen
if (strpos($line, ".tiles/")){
$parts = explode(".tiles/", $line);
$parts[1] = str_replace("/", "_", $parts[1]);
$parts[1] = str_replace("_>", "/>", $parts[1]);
$line = implode(".tiles/", $parts);
}
}
$out .= $line;
}
//XML Datei überschreiben
file_put_contents("$path/$path.xml", $out);
echo "<br><br>XML überschrieben";
?>
|
Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von »indexofrefraction« (22. November 2017, 13:53)