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:
Kôd:
<?php
$string = "!\"#$%&'()";
$hex = preg_replace("/(.)/es", "sprintf(' %02X', ord('$1'))", $string);
echo $hex;
?>
Rezultat ovoga bi trebalo da bude u hexadecimalnom obliku:
Kôd:
21 22 23 24 25 26 27 28 29
medjutim ja dobijam ovo:
Kôd:
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:
Kôd:
<?php
$string = "!\"#$%&'()";
$hex = preg_replace('/(.)/es', 'sprintf(" %02X", ord("$1"))', $string);
echo $hex;
?>
Dobijam ovo:
Kôd:
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:
Kôd:
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