PHP: UTF-8 String zeichenweise durchlaufen
Frage von Gast | 07.03.2014 um 21:12
Ich würde gerne mit PHP einen String Zeichen für Zeichen durchlaufen. Bis jetzt habe ich dafür folgende Funktion entwickelt:
$s = 'abc'; // geht $s = 'äüö'; // geht nicht for ($i = 0; $i < strlen($s); $i++) { $c = $s[$i]; }
Leider funktioniert dies offenbar nur für ASCII Zeichen wie "abc". Sobald jedoch Unicode Zeichen, wie die deutschen Umlaute ("äüö") vorkommen, geht nichts mehr. Offenbar kommt die Funktion nicht mit Multibyte-Zeichen klar (ä besteht in UTF-8 ja aus 2 Bytes).
Was kann ich trotzdem tun, um einen String Zeichenweise in einer Schleife durchlaufen zu können?
Ähnliche Themen
PHP Mail Funktion: UTF-8 Header in E-Mails
Info | 0 Kommentare
PHP: Eine E-Mail versenden
Tutorial | 0 Kommentare
PHP: Strings mit Ctype-Funktionen auf Zeichenklassen überprüfen
Artikel | 0 Kommentare
HTML: Probleme mit Umlauten und Zeichenkodierungen beseitigen
Tipp | 0 Kommentare
Android Programmierung: Response von HTTP POST Request empfangen
Tutorial | 3 Kommentare
PHP: Alle leeren Elemente aus String-Array entfernen
Tipp | 0 Kommentare
URL für Website aus Seitentitel generieren
Tutorial | 0 Kommentare
Wichtiger Hinweis
Bitte beachten Sie: Die Beiträge auf askingbox.de sind Beiträge von Nutzern und sollen keine professionelle Beratung ersetzen. Sie werden nicht von Unabhängigen geprüft und spiegeln nicht zwingend die Meinung von askingbox.de wieder. Mehr erfahren.
Jetzt mitmachen
Stellen Sie Ihre eigene Frage oder schreiben Sie Ihren eigenen Artikel auf askingbox.de. So gehts.
Die meisten normalen PHP-Funktionen sind in der Tat nicht multibytefähig.
Du kannst es aber so probieren:
Mit preg_split teilst du den String in einzelne Zeichen und speicherst diese in einem Array ab. Den kannst du dann einfach durchlaufen.
Der Modifier "u" sorgt übrigens dafür, dass der String als UTF-8 behandelt wird.
08.03.2014 um 21:25