Folgende Funktion:
Bevor mich jemand anmeckert: Ja, ich weiß, str_replace aktzeptiert auch Arrays. Ich hab das auseinandergefriemelt um den Fehler zu finden.
Also. Sofern ich die Funktion direkt im Quelltext aufrufe, mit z.B.
funktioniert das ganze einwandfrei. Wenn ich allerdings Daten aus einem Formluar nehme, werden du Umlaute plötzlich nichtmer erkannt bzw. ersetzt, sondern nur noch das Leerzeichen. Jetzt habe ich mir aus dem Dateinamen da wo das ö stehen sollte mal den Teil "ö" kopiert, und schon wird das ganze wieder erkannt, aber das kann doch nicht wirklich so gedacht sein?!
Mir ist inzwischen klargeworden, dass das ganze wohl am UTF-8 zu liegen hat, dennich würde ich gerne wissen, ob jemand ne intelligentere Methode zur hand hat, um den Kram da umzuwandeln. Jemand ne Idee? Wäre sehr dankbar!
PHP-Code:
function dv_picture_get_filename($bild_titel, $bild_endung) {
$result = dv_mysql_query("SELECT last_insert_id() as last FROM dv_bild");
$arr = mysql_fetch_assoc($result);
$id = $arr['last'];
echo "<br /><br />Input: $bild_titel.$bild_endung";
$titel = $bild_titel;
$endung = $bild_endung;
// Umlaute ersetzen und ID anhängen
$titel = str_replace("ä","ae",$titel);
$titel = str_replace("ö","oe",$titel);
$titel = str_replace("ü","ue",$titel);
$titel = str_replace("Ä","AE",$titel);
$titel = str_replace("Ö","OE",$titel);
$titel = str_replace("Ü","UE",$titel);
$titel = str_replace("ß","ss",$titel);
$titel = str_replace(" ","_",$titel);
echo "<br />Output: $titel" ."_". "$id.$endung";
return $titel . "_$id." . $endung;
}
Also. Sofern ich die Funktion direkt im Quelltext aufrufe, mit z.B.
PHP-Code:
echo dv_picture_get_filename("Hallo jürgen hüöäö","png");
Mir ist inzwischen klargeworden, dass das ganze wohl am UTF-8 zu liegen hat, dennich würde ich gerne wissen, ob jemand ne intelligentere Methode zur hand hat, um den Kram da umzuwandeln. Jemand ne Idee? Wäre sehr dankbar!
Kommentar