<?php
/**
* Dateinamen bereinigen
*/
function TidyFilename($val)
{
// whitespace durch Unterstrich ersetzen
$new = preg_replace('=(\s+)=', '_', $val);
// Liste aller Umlaute
$map = array(
'ä' => 'ae',
'Ä' => 'ae',
'ß'=>'ss',
'ö'=>'oe',
'Ö' => 'oe',
'Ü'=>'ue',
'ü'=>'ue',
// hier ggf. weitere Zeichen ergänzen, z.B.
'à' => 'a',
'é' => 'e',
'è' => 'e',
);
// Umlaute konvertieren
$new = str_replace(array_keys($map), array_values($map), $new);
// Kleinschreibung
$new = strtolower($new);
// alle anderen Zeichen verwerfen
$new = preg_replace('#[^a-z0-9_.-]#', '', $new);
return $new;
}
// ein paar Beispiele für weniger schöne Dateinamen
$dirty_names = array(
'Übersicht.html',
'Eine kleine Beispielseite.html',
'Ölfaß.doc',
'TEST ÄÖÜ .doc',
'häHä.php',
'Mit Binde-Strich 123.doc',
'sécurité intérieure.html',
'ŠmØrë-Brød röm pöm pöm pö',
);
// Ausgabe
foreach ($dirty_names as $dirty){
$tidy = TidyFilename($dirty);
printf('"<strong>%s</strong>" wird zu "<em>%s</em>"<br>', $dirty, $tidy);
}
?>
Dieses PHP Snippet soll in erster Linie als Beispiel und Anregung für eigene Bemühungen dienen.
Gerne darf man es für Projekte aller Art benutzen.
Möchte jemand das Snippet also solches in ähnlicher oder anderer Form veröffentlichen ist ein kleiner Hinweis auf simplecontent.net nicht zuviel verlangt oder Herr Koch?
Für die Abwesenheit von Fehlern kann natürlich keine Gewähr gegeben werden.