2013-06-28 2 views
1

У меня проблема: Я создал файл-загрузку. Загрузитель работает отлично. В загрузчике я генерирую новое имя файла (без пробелов, все написанное маленькими буквами и т. Д.). Для этого я создал функцию. Но у меня все еще есть проблемы с немецким «Умлаут» (ä, ü, ö, ß). Когда я использую функцию, функция не заменила их. Я всегда получаю файлы с именем «ta ?? nzer.pdf».Не могу выйти из таких знаков, как ä, ö, ü from filename

Вот код 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']. И там заменены немецкие «Умлаут». Но не в этом случае - загрузка файла.

Знаете ли вы, почему?

+0

Возможно, у вас возникла проблема с набором символов, отправляемым браузером. Вы можете посмотреть [здесь] (http://www.w3schools.com/tags/att_form_accept_charset.asp) –

ответ

0

Возможно, вы можете попробовать добавить это в свой тэг?

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 

Кроме того, кодирующая страница UTF8, и вы должны добавить:

Наверное, нет. Убедитесь, что файл php фактически сохранен с помощью кодировки utf-8.

дайте мне знать, если я могу вам помочь.

+0

Здравствуйте, я уже включил эту строку: в моем php-файле. Я открыл файл php с помощью своего текстового редактора и сохранил его как utf-8. Но проблема не решена. Любая другая идея? –

+1

hi ini_set ('default_charset', 'utf-8') PLS попробуйте с этим также вы можете ссылаться на ссылку, чтобы избежать этой проблемы типа http://webmonkeyuk.wordpress.com/2011/04/23/how-to-avoid- character-encoding-problems-in-php/ – liyakat

+0

Извините за поздний ответ ... теперь это нормально ... это только не работает в MAMP .... –

Смежные вопросы