• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Akzentuierte Zeichen ersetzen

Kaktus621

Neues Mitglied
Hallo!

Ich möchte akzentuierte Buchstaben (z.B. ê oder ú) durch ihre "normalen" ersetzen (also e oder u).
Jetzt würde mir Spontan als Lösung ein str_replace einfallen, allerdings müssten da je unmengen an zu ersetzenden Zeichen aufgelistet werden, ich frage mich, ob das denn effizient ist. Gibt es möglicherweise eine bessere Lösung, Akzente von Buchstaben zu entfernen (also ´ , ` , ^ , ~ , ' )?

Ich wäre über Tipps sehr dankbar.
Kaktus621
 
Werbung:
Das gibt es bestimmt. Aber bevor du das machst kann man das Problem anders angehen, dazu muss man aber erst wissen, wozu du das so brauchst.
 
Nunja, aus einer Liste von Vor- und Nachnamen (die ja durchaus auch aus akzentuierten Buchstaben bestehen können), sollen automatisiert Benutzernamen entstehen. Diese sollten allerdings nach Möglichkeit weder Sonderzeichen/Umlaute noch eben solche akzentuierten Zeichen enthalten (aus "Max Müster Mànn" soll dann am Ende "mmuestermann" entstehen). Die Umlaute sind schnell mit einem Str_replace geregelt, nur eben bei den Akzenten gibt es zahllose Kombinationsmöglichkeiten...
 
Zuletzt bearbeitet:
Werbung:
Hmm, ich suche das mal, bis dahin:


'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûýýþÿ'
'aaaaaaaceeeeiiiidnoooooouuuuybsaaaaaaaceeeeiiiidnoooooouuuyyby'
musst du dich damit zufrieden geben.
 
Regex, also ungefähr sowas:

/[a-zA-Z0-9\s]/

also alles von a-z, A-Z 0-9 und alle Whitspaces (\n, \r, Leerzeichen etc). \w ist zwar nicht verkehrt, aber hängt von der Lokalisierung ab.

*edit*
ach so: könnte man es testen, aber nicht automatisch ersetzen. Ich denke man braucht wirklich eine Struktur, welche die zu ersetzenden Zeichen aufführt.
 
Okay, das dachte ich mir schon fast, ich konnte nämlich auch keine wirkliche Lösung finden. Vielleicht findet Asterixus ja noch etwas.. ansonsten werd ich das wohl mit dem Replace Verfahren machen. In meinem Fall fallen die Großbuchstaben zum Glück alle weg, da der Name davor auf lowercase gebracht wird (werden akzentuierte Buchstaben eigentlich auch von der Funktion erfasst? Das muss ich mal ausprobieren...)

Ansonsten erstmal vielen Dank für eure Hilfe, vielleicht findet sich ja doch noch irgendwann eine Lösung :)

EDIT:

strtolower verkleinert KEINE akzentuierte Buchstaben.
 
Zuletzt bearbeitet:
Werbung:
Okay, das dachte ich mir schon fast, ich konnte nämlich auch keine wirkliche Lösung finden. Vielleicht findet Asterixus ja noch etwas.. ansonsten werd ich das wohl mit dem Replace Verfahren machen. In meinem Fall fallen die Großbuchstaben zum Glück alle weg, da der Name davor auf lowercase gebracht wird (werden akzentuierte Buchstaben eigentlich auch von der Funktion erfasst? Das muss ich mal ausprobieren...)

Ansonsten erstmal vielen Dank für eure Hilfe, vielleicht findet sich ja doch noch irgendwann eine Lösung :)

EDIT:

strtolower verkleinert KEINE akzentuierte Buchstaben.
Ja, das wisssen die meisten hier schon.
Etwas, was mich interessiert ist zu wissen, was die Funktion htmlentities() für eine Konvertierungstabelle benutzt.

/edit: Ich meine, dass man diese Tabelle dans benutzen könnte um dann durch die nicht akzentuierten Zeichen zu erstetzten.
 
Zuletzt bearbeitet:
Zurück
Oben