No special chars in filename

This commit is contained in:
Laurent Destailleur 2008-10-25 22:54:31 +00:00
parent 64ff118c37
commit 5424704757

View File

@ -96,30 +96,37 @@ function dol_string_unaccent($str)
{ {
$string = rawurlencode($str); $string = rawurlencode($str);
$replacements = array( $replacements = array(
'%C3%A0' => 'a','%C3%A1' => 'a','%C3%A2' => 'a', '%C3%80' => 'A','%C3%81' => 'A',
'%C3%A8' => 'e','%C3%A9' => 'e','%C3%AA' => 'e','%C3%AB' => 'e', '%C3%88' => 'E','%C3%89' => 'E',
'%C3%AC' => 'i','%C3%AD' => 'i', '%C3%8C' => 'I','%C3%8D' => 'I',
'%C3%B2' => 'o','%C3%B3' => 'o', '%C3%92' => 'O','%C3%93' => 'O',
'%C3%B9' => 'u','%C3%BA' => 'u', '%C3%99' => 'U','%C3%9A' => 'U',
'%C3%80' => 'A','%C3%81' => 'A', '%C3%A0' => 'a','%C3%A1' => 'a','%C3%A2' => 'a',
'%C3%88' => 'E','%C3%89' => 'E', '%C3%A8' => 'e','%C3%A9' => 'e','%C3%AA' => 'e','%C3%AB' => 'e',
'%C3%8C' => 'I','%C3%8D' => 'I', '%C3%AC' => 'i','%C3%AD' => 'i',
'%C3%92' => 'O','%C3%93' => 'O', '%C3%B2' => 'o','%C3%B3' => 'o',
'%C3%99' => 'U','%C3%9A' => 'U' '%C3%B9' => 'u','%C3%BA' => 'u'
); );
$ret=strtr($string, $replacements); $string=strtr($string, $replacements);
return rawurldecode($ret); return rawurldecode($string);
} }
else else
{ {
$translationiso=array( $string = strtr($str,
"\xE0" => "a", "\xE1" => "a", "\xE2" => "a", "xC0\xC1\xC2\xC3\xC5\xC7
"\xE8" => "e", "\xE9" => "e", "\xEA" => "e", "\xEB" => "e", \xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\xD0\xD1
"\xEE" => "i", "\xEF" => "i", \xD2\xD3\xD4\xD5\xD8\xD9\xDA\xDB\xDD
"\xF4" => "o", "\xF6" => "o", \xE0\xE1\xE2\xE3\xE5\xE7\xE8\xE9\xEA\xEB
"\xFB" => "u", "\xFC" => "u"); \xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF8
$ret=str_replace(array_keys($translationiso), array_values($translationiso), $str); \xF9\xFA\xFB\xFD\xFF",
return $ret; "AAAAAC
EEEEIIIIDN
OOOOOUUUY
aaaaaceeee
iiiidnooooo
uuuyy");
$string = strtr($string, array("\xC4"=>"Ae", "\xC6"=>"AE", "\xD6"=>"Oe", "\xDC"=>"Ue", "\xDE"=>"TH", "\xDF"=>"ss", "\xE4"=>"ae", "\xE6"=>"ae", "\xF6"=>"oe", "\xFC"=>"ue", "\xFE"=>"th"));
return $string;
} }
} }