Zeichenkodierung
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
abstand
alpha
band
bandname
beitrag
break
buchstabe
einstellung
funktion
gruss
hilfe
iota
kodierung
letter
manual
match
tabelle
verstehe
ypsilon
zusatzzeichen
-
dine Funktionen sehen interessant aus ... meine Funktionen funktionieren zwar, aber mal sehen, vielleicht erweitere ich diese noch mit deinem Code.
Ich hab gerade die letzten beiden nochmal "geupdated" -- weil sie vorher auch alle ASCII-Buchstaben in Entities umgewandelt haben. Das wäre wohl zu viel des Guten ...^^
Was ich jedoch nicht ganz verstehe ist dein Array zur Gross- und Kleinbuchstaben-Umwandlung. Werden da wirklich alle Zeichen behandelt?
Alle Buchstaben, die ich rausfinden konnte, und die auch paarweise als Groß- und Kleinbuchstaben auftreten. Wenn ich mal viel Zeit habe, schau ich mir mal die offiziellen Unicode-Tabellen an ...
Damit nicht jeder Buchstabe eingetragen werden muss, erfasst die Tabelle Bereiche. Jeder Eintrag hat als Key den Startpunkt in der Unicode-Tabelle. Das als Value rangehängte Array wiederum enthält zwei Einträge: Endpunkt und Abstand zum Kleinbuchstaben. Also etwa so:
... = array ( start => array (ende, abstand), ... );
Die ucs_to_...er()-Funktionen schauen dann noch, ob der Startpunkt eine gerade oder eine ungerade Zahl ist, wenn der Abstand gleich 1 ist.
Die Kleinbuchstaben-nach-Großbuchstaben-Tabelle kehrt einiges um.
Gegenüber der mb-Erweiterung dürfte das Ganze trotzdem etwas langsam laufen ...
Übrigens hat die PCRE-Erweiterung von PHP auch eingebaute Unicode-Tabellen. Und sie kann beim Verarbeiten Regulärer Ausdrücke auch Groß-, Klein- und Title-Case-Schreibung unterscheiden. Leider gibts keine (mir bekannten) Befehle zum Ändern von Groß- in Kleinschreibung (oder umgekehrt) ...
In dem Fall wäre das Ganze nämlich wesentlich einfacher zu basteln. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage