Dateien umbenennen mit lateinischen Zeichen

Thomas_Jung

Erfahrenes Mitglied
#1
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";
 

Thomas_Jung

Erfahrenes Mitglied
#3
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>
 

Thomas_Jung

Erfahrenes Mitglied
#4
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.
 
#5
Die Frage von oben ist damit aber leider nicht beantwortet.

(Alles was kein Buchstabe Zahl _ - . ist aus Dateinamen entfernen)
(Streng genommen sind das aber alles Buchstaben ... jaja, ich weiß schon was gemeint ist :D)

Btw., was soll passieren wenn zwei Dateinamen zum gleichen Zielnamen führen?
 

Thomas_Jung

Erfahrenes Mitglied
#6
Die eine Datei umbenennen in 001 002 003 u.s.w währe eine Lösung
 

Thomas_Jung

Erfahrenes Mitglied
#7
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.
 

Thomas_Jung

Erfahrenes Mitglied
#9
Was hat das mit dem Editor zu tun. Ich suche ein PHP script das diese Aufgabe für mich erledigt