Hallo,
ich möchte eine kleine Fkt. schreiben, die mir nach meinen Regeln einen String Normalisiert. So soll z.B. aus "Die Bäume" durch die Fkt. der String "die_baeume" zurückgeliefert werden.
Das Ersetzen aller Zeichen die *nicht* a-z0-9 entsprechen klappt per preg_replace schon gut. Jedoch scheint keine der String-Ersetzungsfunktionen mir die deutschen Umlaute zu ersetzen.
Mein Code sieht aktuell so aus:
HTML
<html>
<head>
<title>normalize string -Test</title>
<meta http-equiv="content-type" content="text/html; utf-8">
</head>
<body>
<?
function normalizeString($input) {
/* return a normalized string equivalent of the given string
*/
$dtUmlaute = array("ä", "ö", "ü", "ß", "e");
$altUmlaute = array("ae", "oe", "ue", "ss", "#");
$normUmlaute = array("ä" => "ae", "ö" => "oe");
// $input = str_replace($dtUmlaute, $altUmlaute, strtolower($input));
$input = strtr(strtolower($input), $normUmlaute);
$pattern = "/[^[a-z0-9]/i";
return preg_replace ($pattern, '_', $input);
}
//-------------------------
if (!isset($_POST['sended'])) {
?>
<form action="" method="post">
<input name="input" size="35">
<input name="sended" type="hidden" value="1">
<input type="submit" value="normalize">
</form>
<?
}
else {
system("locale -a");
setlocale(LC_ALL, 'de_DE@euro', 'de_DE', 'de', 'ge');
$normalizedString = normalizeString($_POST['input']);
echo $normalizedString;
}
?>
</body>
</html>
(
Alles anzeigen
Was mach ich also falsch?
Torty