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