[ Miroslav Ćurčić @ 16.04.2009. 21:55 ] @
Imao sam problem pri konvertovanju (s preg_replace) teksta koji ima html entitete unutar UTF8 stringa. Primer: Code: preg_replace('/&#(\d+);/e', "chr(\\1)", 'Obućar - šđčćž'); Paterni su preuzeti sa (mislim) wwwphpnet/preg_replace i dobro radi u nekim drugim slučajevima. Izgleda da je ovde problem to što preg_replace zamenjuje entitet jednim bajtom (funkcija chr) u ovom slučaju 007 (što je overflow od 263), a meni treba dvobajtni ("ć" = 196,135). Na kraju sam napravio transalaciju svih 8 slova preko strtr funkcije, al to nije univerzalno rešenje, šta ako se pojavi još neki egzotični karakter? Dakle, kako izvesti translaciju entiteta (u numeričkom obliku) unutar UTF8 stringa? Ne mora uopšte sa regex, bitno je da radi, a opet ne bih išao sa nekom komplikovanom analizom (tipa: petlja koja traži "&#" pa čitaj do ";" pa to konvertuj pa zameni) zbog brzine rada. |