[ midgard @ 14.02.2011. 17:10 ] @
Problem je sledeci: Imam jedan string karaktera, u pitanju je ceo ISO-8859-1, ali tamo gde izbija problem je u ovom delu: !"#$%&'() Zelim da prebacim taj string karaktera u njihove hexadecimalne vrednosti i imam ovu liniju koda koja to radi: Code: <?php $string = "!\"#$%&'()"; $hex = preg_replace("/(.)/es", "sprintf(' %02X', ord('$1'))", $string); echo $hex; ?> Rezultat ovoga bi trebalo da bude u hexadecimalnom obliku: Code: 21 22 23 24 25 26 27 28 29 medjutim ja dobijam ovo: Code: 21 5C 23 24 25 26 27 28 29 Problem je u 5C koji je u stvari karakter / odnosno escape. Zakljucak: umesto hexa kod za karakter " (22) dobio sam hexa kod za karakter / (5C). :( Daljim mucenjem otkrio sam sledece, kada napisem preg_replace funkciju sa jednostrukim navodnicima umesto sa dvostrukim: Code: <?php $string = "!\"#$%&'()"; $hex = preg_replace('/(.)/es', 'sprintf(" %02X", ord("$1"))', $string); echo $hex; ?> Dobijam ovo: Code: 21 22 23 24 25 26 5C 28 29 Zakljucak: umesto hexa kod za karakter ' (27) dobio sam hexa kod za karakter / (5C). :( :( Ne mogu da koristim ovako nesto: Code: echo hexdec(ord($char)); Jer ovo radi samo sa ASCII, a meni treba full ISO-8859-1. Nadam se da neko moze da mi pomogne da resim ovo. Poz |