Sonderzeichen in Url und Bildpfad

Thomas_Jung

Erfahrenes Mitglied
Hallo

Ich lese mit der Funktion dir_rekursiv einen Ordner mit Bilder aus.

Nun möchte ich die Bilder verlinken und auch anzeigen lassen.

Problem

Die Bildnamen haben ü ä ö ß ' ´ Zeichen im Namen.

Muss ich alle Bilder umbenenen oder gibt es eine andere Lösung dafür.


PHP:
function dir_rekursiv($verzeichnis) 

{ 

    $handle =  opendir($verzeichnis); 

    while ($datei = readdir($handle)) 

    { 

        if ($datei != "." && $datei != "..") 

        { 

            if (is_dir($verzeichnis.$datei)) // Wenn Verzeichniseintrag ein Verzeichnis ist 

            { 

                // Erneuter Funktionsaufruf, um das aktuelle Verzeichnis auszulesen

                dir_rekursiv($verzeichnis.$datei.'/'); 

            }

            else

            { 

                // Wenn Verzeichnis-Eintrag eine Datei ist, diese ausgeben

                echo $verzeichnis.$datei.'<br />';
				
//VERSUCH Möchte ich aber eigentlich nicht.
$altername= $verzeichnis.$datei;
$sonderzeichen = array('Ä',  'Ü',  'Ö',  'ä',  'ö',  'ü',  'ß',  ' ',  '´');
$ersatzzeichen = array('Ae', 'Ue', 'Oe', 'ae', 'oe', 'ue', 'ss', '_', ' ');
$neuername = str_replace($sonderzeichen, $ersatzzeichen, $altername);
				

                } 

        }

    } 

    closedir($handle); 

}

Gruß Thomas
 
Meiner Meinung nach haben Umlaute in der URL (also auch Dateinamen) nichts zu suchen.

Ich würde ein kleines Skript basteln und alle Umlaute in den Dateinamen ersetzen.

Ä -> AE
Ö -> OE
Ü -> UE
 
Hallo

Wenn Sonderzeichen oder Hochkomma drinnen sind kommt das.
Warning: getimagesize(motörhead.jpg) [function.getimagesize]: failed to open stream: No such file or directory in mp3.php on line 184

Gruß Thomas
 
Naja, in der Doku steht ja auch, dass Sonderzeichen kodiert werden müssen.
Versuche es mal so:
PHP:
$filename = urlencode('motörhead.jpg');
$size = getimagesize($filename);
 
Hallo

Wenn ich das Anwende passiert das.

Warning: getimagesize(mot%C3%B6rhead.jpg) [function.getimagesize]: failed to open stream: No such file or directory in mp3.php on line 191


Gibt es vielleicht bereits ein Script das mir alle Dateinamen automatisch umbenennt?
Wenn möglich Rekursive.
Gruß Thomas
 
Normalerweise dürfte das, zumidnest mit UTF8, kein Problem sein, der Funktio einen filename mit umlauten zu übergeben.
Wende ansonsten mal vorher utf8_encode() darauf an.
 
Hallo

Wolte die Datei Aä.mp3 umnenennen und erhalte die Fehlermeldung.

rename(utf8_encode($oldPath), $neu_Path);

Warning: rename(1/Aä.mp3,1/ssssssssssae.mp3) [function.rename]: No such file or directory in

Gruß Thomas
 
Zurück