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