phpbar.de logo

Mailinglisten-Archive

[php] Funktion zum Säubern von Dateinamen

[php] Funktion zum Säubern von Dateinamen

Sebastian Tobias Mendel genannt Mendelsohn lists at sebastianmendel.de
Die Okt 21 14:45:46 CEST 2003


> 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; ) '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