Dateien umbenennen mit lateinischen Zeichen

Thomas_Jung

Erfahrenes Mitglied
Hallo,
ich versuche die Datei "19. Vianney - Je te dséteste.mp3" umzubenennen un erhalte folgende Meldung.


Warning: : Das System kann die angegebene Datei nicht finden. (code: 2) in C:\xampp\htdocs\MP3_PLAYER_2016\rename.php on line 23

Warning: : failed to open dir: No such file or directory in C:\xampp\htdocs\MP3_PLAYER_2016\rename.php on line 23
Directory not found


Wenn ich das é manuell entferne ist der Fehler weg.

Was muss ich tun um mit PHP lateinischen Zeichen lesen zu können?

Gruß Thomas




PHP:
function normalize($string) {
    $inchar = explode(",","ç,æ,œ,á,é,í,ó,ú,à,è,ì,ò,ù,ä,ë,ï,ö,ü,ÿ,â,ê,î,ô,û,å,e,i,ø,u");
    $outchar = explode(",","c,ae,oe,a,e,i,o,u,a,e,i,o,u,a,e,i,o,u,y,a,e,i,o,u,a,e,i,o,u");
    $newstring = str_replace($inchar, $outchar, $string);
    return $newstring;
}
function do_rename($path){
    if($handle = opendir($path))
    {
        while(($entry = readdir($handle)) !== FALSE)
        {
            if ($entry != "." && $entry != "..") {
                if(is_file($path.$entry))
                {
                    //rename($path.$entry,$path.str_replace(' ', '_',$entry));
                    echo "BEFORE:<br />";
                    echo $path.normalize($entry);
                    //rename($path.$entry,$path.normalize($entry));
                    echo "<br />AFTER:<br />";
                    echo normalize($entry).'<br />';
                }else{ //is_dir()
                    do_rename($path.$entry.DIRECTORY_SEPARATOR);
                }
            }
        }

        closedir($handle);
    }
    else
    {
        echo "Directory not found";
        exit();
    }
}


do_rename($start_dir.'/');
echo "Script Completed Successfully";
 
Hi

Gegenfrage 1: Welches Encoding hat die Datei mit dem PHP-Quelltext?

Btw., die Meisten der Zeichen im Array sind nicht lateinisch.
 
Hallo,
hier ist das komplette Script.

Code:
<!DOCTYPE HTML>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>MP3 Importieren</title>
       
    </head>
    <body style="padding:px;">
<?php

$start_dir = 'media/MP3';
?>
<?php

function normalize($string) {
    $inchar = explode(",","ç,æ,œ,á,é,í,ó,ú,à,è,ì,ò,ù,ä,ë,ï,ö,ü,ÿ,â,ê,î,ô,û,å,e,i,ø,u");
    $outchar = explode(",","c,ae,oe,a,e,i,o,u,a,e,i,o,u,a,e,i,o,u,y,a,e,i,o,u,a,e,i,o,u");
    $newstring = str_replace($inchar, $outchar, $string);
    return $newstring;
}
function do_rename($path){
    if($handle = opendir($path))
    {
        while(($entry = readdir($handle)) !== FALSE)
        {
            if ($entry != "." && $entry != "..") {
                if(is_file($path.$entry))
                {
                    rename($path.$entry,$path.str_replace(' ', '_',$entry));
                    echo "BEFORE:<br />";
                    echo $path.normalize($entry);
                    rename($path.$entry,$path.normalize($entry));
                    echo "<br />AFTER:<br />";
                    echo normalize($entry).'<br />';
                }else{ //is_dir()
                    do_rename($path.$entry.DIRECTORY_SEPARATOR);
                }
            }
        }

        closedir($handle);
    }
    else
    {
        echo "Directory not found";
        exit();
    }
}


do_rename($start_dir.'/');
echo "Script Completed Successfully";



?>

</body>
</html>
 
Hi
ich brauche eigendlich nur ein Script das mir alle Dateien unbenennt.

(Alles was kein Buchstabe Zahl _ - . ist aus Dateinamen entfernen)

Es gibt genug Scripte die das erledigen. ABER alle haben das Problen mit dem Lesen der Dateinamen wenn Sie
Sonderzeichen oder andere Zeichen im Dateinamen haben.
 
Es soll einfach nur ein Script sein das recrusive alle Ordner und Dateinamen mit ungültigen Zeichen ( alles was nicht a-z 0-1 - _ .) Umbenent

Wie schon gesagt alle scripts was ich kenne melden ein Fehler bei Datei oder Ordner Namen mit Sonderzeichen oder anderen Zeichen. (Weil der Dateiname beim umbenennen oder kopieren nicht gelesen werden kann.

Das System kann die angegebene Datei nicht finden.
 
Wo stellst du den Zeichensatz der Codedatei sonst ein, wenn nicht im Editor?
...Bin damit vorerst hier fertig, werde kein viertes Mal fragen.
 
Zurück