不能退出跡象ä,ö,ü我有以下問題: 我創建了一個文件上傳。上傳者工作正常。在上傳器中,我生成一個新的文件名(沒有空格,一切以小寫字母等等)。 爲此我創建了一個函數。但是我仍然遇到德語「Umlaute」(ä,ü,ö,ß)的問題。 當我使用該功能時,該功能並未取代它們。我總是得到名爲「ta ?? nzer.pdf」的文件。從文件名
這裏是PHP代碼:
$temp = explode(".", $_FILES["file"]["name"]);
$newname = generate_alias($temp[0]);
$_FILES["file"]["name"] = $newname.".".$temp[1];
move_uploaded_file($_FILES["file"]["tmp_name"],
"../media/presse/" . $_FILES["file"]["name"]);
這裏的功能:
function generate_alias($text) {
# Leerzeichen an Anfang und am Ende entfernen
$text = trim($text);
# Umlaute ersetzen
$upas = Array("ä" => "ae", "ü" => "ue", "ö" => "oe", "Ä" => "Ae", "Ü" => "Ue", "Ö" => "Oe","ß" => "ss","á"=>"a","Á"=>"A","é"=>"e","è"=>"e","ê"=>"e","É"=>"E");
$text = strtr($text, $upas);
# Alles klein schreiben
$text = strtolower($text);
#Sonderzeichen entfernen
$not_allowed = array("/", "|", "\\", "_", "(", ")", "{", "}", "[", "]", "!", "\"", "'", "‘", "$", "&", "?", "=", "*", "#", ";", ",", ":", ".", "<", ">", "^", "°");
$text = str_replace($not_allowed, "", $text);
# Leerräume durch Bindestrich ersetzen
$text = strtr ($text, " ", "-");
return $text;
}
我使用這個功能也從文章標題創建別名。文章標題來自$ _POST ['title']。德國的「Umlaute」被取代。但不是在這種情況下 - 上傳文件。
你知道爲什麼嗎?
您可能會遇到瀏覽器發送的字符集有問題。你可以看看[這裏](http://www.w3schools.com/tags/att_form_accept_charset.asp) – 2013-06-28 07:10:32