Theo24: strlen bei Sonderzeichen - danach auf Index zugreifen

Beitrag lesen

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