phpbar.de logo

Mailinglisten-Archive

Re: [php] Funktion zum Säubern von Dateinamen

Re: [php] Funktion zum Säubern von Dateinamen

Swiss4.com webmaster at swiss4.com
Die Okt 21 15:02:36 CEST 2003


Hallo Sebastian,

> "Sebastian Tobias Mendel genannt Mendelsohn" <lists at sebastianmendel.de>
>
> 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!
>


Wieso denn das?



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

Vielen Dank für dein Input. Ich habe nun die Funktion verbessert:

<?
// 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;
}


Ivan



?>


php::bar PHP Wiki   -   Listenarchive