Moin Leute...
Also ich habe grad wieder ein bisschen rumgebastelt mit meinem Root und wollte nun den Inhalt meines alten Webspaces auf meinen root kopieren... geht dank wget recht fix und einfach...
das problem ist nur das Leerzeichen in dateinamen und ordnern als "%20" gespeichert werden...
So dachte ich mir: Machst ne php datei die diese Ordner und dateien und ordner unter korrigiertem namen kopiert...
soweit so gut... php script geschrieben... Dieses Script liest Ordner Struktur aus und soll den Namen des Files/Ordners per str_replace korrigieren... und dann in einem neuen Ordner unter selber struktur abspeichern...
mein Code dafür:
das Problem dadran ist nur folgende Fehlermeldung:
und jetzt werden bestimmt wieder einige Schlaumeier kommen und behaupten das würde an den Datei-Rechten liegen... falsch...
Dateirechte sind richtig gesetzt... selbst wenn ich die Dateirechte manuell per shell neu setze auf 0777 gehts nicht -.-
vllt hat ja jemand von euch ne idee wodran es liegen könnte...
Also ich habe grad wieder ein bisschen rumgebastelt mit meinem Root und wollte nun den Inhalt meines alten Webspaces auf meinen root kopieren... geht dank wget recht fix und einfach...
das problem ist nur das Leerzeichen in dateinamen und ordnern als "%20" gespeichert werden...
So dachte ich mir: Machst ne php datei die diese Ordner und dateien und ordner unter korrigiertem namen kopiert...
soweit so gut... php script geschrieben... Dieses Script liest Ordner Struktur aus und soll den Namen des Files/Ordners per str_replace korrigieren... und dann in einem neuen Ordner unter selber struktur abspeichern...
mein Code dafür:
PHP-Code:
<?php
function read_dir($dir) {
$path = opendir($dir);
$order='';
while (false !== ($file = readdir($path))) {
if($file!="." && $file!=".." && $file!="read.php" && $file!="tmp") {
if(is_file($dir."/".$file)){
$files[]=$file;
} else {
$dirs[]=$dir."/".$file;
}
}
}
if($dirs) {
natcasesort($dirs);
foreach($dirs as $fdir) {
read_dir($fdir);
}
}
if($files) {
natcasesort($files);
foreach ($files as $file) {
$dire = str_replace('./','',$dir);
$dire = str_replace('%20',' ',$dire);
if(!is_dir('./tmp/'.$dire)) {
if(mkdir('./tmp/'.$dire,0777)) {
echo $dire.' erstellt<br>';
} else {
echo $dire.' nicht erstellt<br>';
}
}
chmod('./tmp/'.$dire,0777);
$temp = $dir.'/'.$file;
$old_name = $temp;
$new_name = str_replace('%20',' ',$temp);
$new_name = str_replace('./','',$new_name);
if(rename($old_name,'./tmp/'.$new_name)) {
echo $new_name.' kopiert<br>';
} else {
echo $new_name.' nicht kopiert<br><br>';
}
}
}
closedir($path);
}
$path=".";
read_dir($path)
?>
Warning: rename(***,***): Permission denied in /srv/www/htdocs/*** on line 27
Dateirechte sind richtig gesetzt... selbst wenn ich die Dateirechte manuell per shell neu setze auf 0777 gehts nicht -.-
vllt hat ja jemand von euch ne idee wodran es liegen könnte...
Kommentar