Hallo liebe Community,
ich habe ein riesen Problem.
Ich lese Dateien mittels opendir und readdir ein Verzeichnis ein.
Dort befinden sich jetzt einige Dateien mit Umlauten (ä,ö,ü,ß,Ä,Ö,Ü)
Diese möchte ich per rename ersetzen.
Unter Windows funktioniert das auch ganz einfach:
Nur unter Mac OS X hat das Script Probleme. Die Abfrage mittels strstr($newFile, "ä") schlägt komplett fehl. Er merkt es einfach nicht.
Ich tippe mal, dass das an der Zeichenkodierung liegt.
Bitte helft mir, ich google schon seit Wochen nach einer Lösung.
Vielen Dank & Grüße
Michael
ich habe ein riesen Problem.
Ich lese Dateien mittels opendir und readdir ein Verzeichnis ein.
PHP-Code:
function scan($folder) {
// Durchsucht den Tagesordner
if ($content = opendir($folder)) {
// Solange es etwas zu lesen gibt
while (false !== ($file = readdir($content))) {
}
}
}
Diese möchte ich per rename ersetzen.
Unter Windows funktioniert das auch ganz einfach:
PHP-Code:
function deleteSpecialChars($folder, $file) {
// Falls in der Testumgebung (WIN 7), ist die Zeichenkodierung eine andere
// Jetzt die ANSI-Verzeichniskodierung in UTF-8 umwandeln
// Speichert erstmal den Pfad und den Dateinamen
$oldPath = "$folder/$file";
$oldFile = "$file";
// Zwei Arrays fuer str_replace()
$d1 = array("ä" , "ö", "ü", "ß", "Ä", "Ö", "Ü", " ");
$d2 = array("ae" , "oe", "ue", "ss", "Ae", "Oe", "Ue", "-");
// Kodiere in UTF-8 Format
$newFile = utf8_encode($oldFile);
// Falls ein Umlaut im Dateinamen ist, ersetze diesen
if (strstr($newFile, "ä") || strstr($newFile, "ö") || strstr($newFile, "ü") || strstr($newFile, "ß") || strstr($newFile, "Ä") || strstr($newFile, "Ö") || strstr($newFile, "Ü") || strstr($file, " ")) {
// Ersetze die Zeichen
$newFile = str_replace($d1, $d2, $newFile);
// Konkatiniere den neuen Pfad
$newPath = $folder.'/'.$newFile;
//Benennt die Datei um und gibt den Pfad zurueck
rename($oldPath, $newPath);
}
Ich tippe mal, dass das an der Zeichenkodierung liegt.
Bitte helft mir, ich google schon seit Wochen nach einer Lösung.
Vielen Dank & Grüße
Michael


Kommentar