我有以下问题: 我创建了一个文件上传。上传工作正常。在上传程序中,我生成一个新的文件名(没有空格,一切都用小写字母写,等等)。 为此我创建了一个函数。但我仍然有德国“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”被取代了。但不是在这种情况下 - 上传文件。
你知道为什么吗?
答案 0 :(得分:0)
也许你可以尝试在标签中添加它?
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
此外,页面编码为UTF8,
,您必须添加:
可能不是。确保php文件实际上是用utf-8编码保存的。
让我知道我是否可以帮助你更多