Mailinglisten-Archive |
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' 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