ChrisB: Problem mit regulärem Ausdruck

Beitrag lesen

Hi,

$mark_strA[$z] = "ärzt";

$string = "Bei Ärztlichen Behandlungsfehlern stehen wir Ihnen zur Seite";
echo preg_replace('/('.$mark_strA[$z].')/i', '<span class="s_result">${1}</span>', $string);
exit;


>   
> Ich würde folgende Ausgabe erwarten:  
> ------------------------------------  
> Bei <span class="s\_result">Ärzt</span>lichen Behandlungsfehlern stehen wir Ihnen zur Seite  
>   
> Leider funktioniert das aus mir unerklärlichen Gründen nicht  
> mehr. Kann das in irgendeiner Form mit Zeichenkodierungen  
> zusammenhängen?  
  
Ja, tut es.  
  
PHP „kann“ immer noch kein Unicode, sondern betrachtet darin mit mehreren Bytes repräsentierte Zeichen als mehrere Zeichen.  
Und dem zu Folge ist der Modifier i hier in so fern wirkungslos, dass PHP nicht erkennen kann, dass Ä die „grosse“ Version von ä ist.  
  
Nimm den Modifier u hinzu.  
  
MfG ChrisB  
  

-- 
“Whoever best describes the problem is the person most likely to solve the problem.” [Dan Roam]