Ich habe das geliche Problem auch mal gehabt, und diese Funktion dazu erstellt:
function file_name($replacement) {
$replacement = stripslashes($replacement);
$replacement = str_replace('^','',$replacement);
$replacement = str_replace('|', '', $replacement);
$replacement = str_replace('ß','ss',$replacement);
$replacement = str_replace('!','_',$replacement);
$replacement = str_replace('á','a',$replacement);
$replacement = str_replace('à','a',$replacement);
$replacement = str_replace('À','A',$replacement);
$replacement = str_replace('Á','A',$replacement);
$replacement = str_replace('â','a',$replacement);
$replacement = str_replace('Â','A',$replacement);
$replacement = str_replace('Ä','Ae',$replacement);
$replacement = str_replace('ä','ae',$replacement);
$replacement = str_replace('Æ','Ae',$replacement);
$replacement = str_replace('æ','ae',$replacement);
$replacement = str_replace('å','a',$replacement);
$replacement = str_replace('Å','A',$replacement);
$replacement = str_replace('Ã','A',$replacement);
$replacement = str_replace('Œ','Ce',$replacement);
$replacement = str_replace('œ','ce',$replacement);
$replacement = str_replace('Ç','C',$replacement);
$replacement = str_replace('ç','c',$replacement);
$replacement = str_replace('é','e',$replacement);
$replacement = str_replace('è','e',$replacement);
$replacement = str_replace('É','E',$replacement);
$replacement = str_replace('È','E',$replacement);
$replacement = str_replace('ê','e',$replacement);
$replacement = str_replace('Ê','E',$replacement);
$replacement = str_replace('€','E',$replacement);
$replacement = str_replace('ë','e',$replacement);
$replacement = str_replace('Ë','E',$replacement);
$replacement = str_replace('í','i',$replacement);
$replacement = str_replace('ì','i',$replacement);
$replacement = str_replace('Í','I',$replacement);
$replacement = str_replace('Ì','I',$replacement);
$replacement = str_replace('î','i',$replacement);
$replacement = str_replace('ï','i',$replacement);
$replacement = str_replace('Î','I',$replacement);
$replacement = str_replace('Ï','I',$replacement);
$replacement = str_replace('Ñ','N',$replacement);
$replacement = str_replace('ñ','n',$replacement);
$replacement = str_replace('ó','o',$replacement);
$replacement = str_replace('ò','o',$replacement);
$replacement = str_replace('Ó','O',$replacement);
$replacement = str_replace('Ò','O',$replacement);
$replacement = str_replace('ô','o',$replacement);
$replacement = str_replace('Ô','O',$replacement);
$replacement = str_replace('Ö','Oe',$replacement);
$replacement = str_replace('ö','oe',$replacement);
$replacement = str_replace('ú','u',$replacement);
$replacement = str_replace('ù','u',$replacement);
$replacement = str_replace('Ú','U',$replacement);
$replacement = str_replace('Ù','U',$replacement);
$replacement = str_replace('û','u',$replacement);
$replacement = str_replace('Û','U',$replacement);
$replacement = str_replace('Ü','Ue',$replacement);
$replacement = str_replace('ü','ue',$replacement);
$replacement = str_replace('ÿ','y',$replacement);
$replacement = str_replace('?','_',$replacement);
$replacement = str_replace('&','_',$replacement);
$replacement = str_replace('=','_',$replacement);
$replacement = str_replace('*','_',$replacement);
$replacement = str_replace("'",'_',$replacement);
$replacement = str_replace('"','_',$replacement);
return $replacement;
}
Zum Speichern des Bild brauchst du dann diese Zeile:
move_uploaded_file($_FILES['bild']['tmp_name'], 'bilderordner/'.file_name($_FILES['bild']['name']));