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 15:21:56 CEST 2003


>>wenn im Dateinamen / oder \ vorkommt würde ich die nicht durch
>>Leerzeichen ersetzen sondern davor bzw. dahinter abschneiden!
> 
> Wieso denn das?

na ich weiß ja nicht wieso du deinen datei-namen bereinigen willst, 
normalerweiße macht man sowas ja weil man keine kontrolle über die 
Herkunft hat, da also alles dirn vorkommen kann

wenn nun jemand versucht z.b. eine datei als '../../../../../../etc/passwd'
zu speichern würdest du folgendes erhalten:
'............etcpasswd'

wozu?

wenn du abschneidest hättest du:
'passwd'

> <?
> // Clean up file name (only lowercase letters, numbers and underscores)
> function cleanFileNames($string)
> {
>  $string = html_entity_decode(rawurldecode($string));
>     $string = strtr( strtr($string,
>     'ŠŽšžŸ¥ÀÁÂÃÄÅÇÐÈÉÊËÌÍÎÏÑÒÓÔÕÖØÙÚÛÜÝàáâãäåçèéêëìíîïñðòóôõöøùúûüµýÿ',
>     'szszyyaaaaaacdeeeeiiiinoooooouuuuyaaaaaaceeeeiiiinooooooouuuuuyy'),
>      array('Þ' => 'th', 'þ' => 'th', 'Ð' => 'dh', 'ð' => 'dh', 'ß' => 'ss',
>            'Œ' => 'oe', 'œ' => 'oe', 'Æ' => 'ae', 'æ' => 'ae', 'µ' => 'u'));
>     $string = ereg_replace("[^a-z0-9._]", "", str_replace(" ", "_",
> str_replace("%20", "_", strtolower($string))));
>     return $string;
> }
> ?>

wozu jetzt noch das
str_replace("%20", "_", ...) ??

%20 wird doch schon durch rawurldecode ersetzt()!

-- 
Sebastian Mendel

www.sebastianmendel.de
www.tekkno4u.de
www.nofetish.com


php::bar PHP Wiki   -   Listenarchive