Mailinglisten-Archive |
> Ich habe folgende Funktion zum Säubern von Dateinamen für das Hochladen von
> Dateien geschrieben.
> Gibt es noch Verbesserungsvorschläge, damit die Funktion allgemein gültig
> wird?
>
> <?
> // Clean up file name (only lowercase letters, numbers and underscores are
> allowed)
> function cleanFileNames($string)
> {
> $string = strtr($string,
> "SOZsozY¥µÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝßàáâãäå æçèéêëìíîïðñòóôõöøùúûüýÿ",
> "SOZsozYYuAAAAAAACEEEEIIIIDNOOOOOOUUUUYsaaaaaaaceeeeiiiionoooooouuuuyy");
> $string = ereg_replace("[^a-z0-9._]", "", str_replace(" ", "_",
> str_replace("%20", "_", strtolower($string))));
> return $string;
> }
> ?>
rawurldecode() oder urldecode() um nicht nur %20 zu ersetzen
wenn im Dateinamen / oder \ vorkommt würde ich die nicht durch
Leerzeichen ersetzen sondern davor bzw. dahinter abschneiden!
und wenn du nicht weißt woher der Dateiname kommt eventuel auch noch
html_entity_decode()
damit nicht eventuell aus '<' (also < ) 'lt' wird
und (aus dem Handbuch):
function removeaccents($string){
return strtr(
strtr($string,
'ŠŽšžŸ¥ÀÁÂÃÄÅÇÐÈÉÊËÌÍÎÏÑÒÓÔÕÖØÙÚÛÜÝàáâãäåçèéêëìíîïñðòóôõöøùúûüµýÿ',
'szszyyaaaaaacdeeeeiiiinoooooouuuuyaaaaaaceeeeiiiinooooooouuuuuyy'),
array('Þ' => 'th', 'þ' => 'th', 'Ð' => 'dh', 'ð' => 'dh', 'ß' => 'ss',
'Œ' => 'oe', 'œ' => 'oe', 'Æ' => 'ae', 'æ' => 'ae', 'µ' => 'u'));
}
--
Sebastian Mendel
www.sebastianmendel.de
www.tekkno4u.de
www.nofetish.com
php::bar PHP Wiki - Listenarchive