Oh Mann, mit mb_substr hatte ich es vorhin schon probiert - aber offenbar das encoding nicht gesetzt. Dann hat es natürlich nicht funktioniert.
So geht es jetzt aber (vielen Dank Chris!)
$text = "€";
$chars = array("@"=>1,"$"=>1,"€"=>2);
$count = 0;
$strl = mb_strlen($text,"UTF-8");
for ($i = 0;$i < $strl; $i++){
$c = mb_substr($text,$i,$i+1,"UTF-8");
if (isset($chars[$c]))
$count += $chars[$c];
}
Hi,
Das Problem: Einige Sonderzeichen bestehen "aus mehrereren Zeichen".
Nein, sie bestehen aus mehreren *Bytes*.
Mach dir den Unterschied bitte klar - er ist extrem wichtig.Was kann ich tun, damit ich per Index auf das Eurozeichen im String $text zugreifen kann?
Bspw. die mbstring-Funktionen, die du ja schon entdeckt hast, nutzen - mb_substr wäre eine Möglichkeit.
MfG ChrisB