ich weiß, über dieses thema wurde bereits einige male sowohl in diesem, als auch in alle anderen foren bez. php schon mal behandelt. ich habe mir die letzten zwei tage auch unzählige themen durchgelesen und ausprobiert. irgendwo muss ich etwas falsch machen, ich weiß nur nicht wo. es heißt ja, dass sich str_replace, preg_replace mit utf-8 beißen; daher soll man ja die variable zu erst mit utf8_decode behandeln. sprich:
mein charset:
nun passiert aber etwas eigenartiges: wenn ich zu erst die funktion utf8_decode einsetze, macht er mir aus z. b.:
das heißt, php entfernt mir dabei sowohl das ß als auch das darauffolgende zeichen, also insgesamt 2 zeichen. php entfernt jegliche umlaute, obwohl diese doch oben bei preg_replace mit #[^a-zA-Z0-9äöüß\040]# doch angegeben wurden. auch die str_replace funktion habe ich ausprobiert. also:
auch die zweite variante macht es nicht besser. ich glaube, ich habe mitlerweile alle varianten ausprobiert, die in foren vorgeschlagen werden. ich habe bei allen keinen erfolg gehabt. zumindest schneidet es mir ohne utf8_decode lediglich die umlaute weg. mit utf8_decode entfernt es mir auch das darauffolgende zeichen. wo ist mein fehler?
mein charset:
Code:
<meta http-equiv="Content-type" content="text/html; charset=UTF-8">
PHP-Code:
$var=utf8_decode()$var
if(preg_match('#[^a-zA-Z0-9äöüß\040]#',$var)) {
$strx=array('#[^a-zA-Z0-9äöüß\040]#','# +#','#ä#','#ö#','#ü#','#ß#');
$stry=array(' ',' ','ae','oe','ue','ss');
$var=preg_replace($strx,$stry,$var);
$var=trim($var);
return $var;
}
fußpilz = fu ilz
PHP-Code:
$strx=array("ä","ö","ü","ß");
$stry=array("ae","oe","ue","ss");
$var=str_replace($strx,$stry,utf8_decode($var));

Kommentar