Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

php char to hex problem

[es] :: PHP :: php char to hex problem

[ Pregleda: 1737 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

midgard
Beograd, Vozdovac

Član broj: 59016
Poruke: 127
*.routotelecom.com.



+1 Profil

icon php char to hex problem14.02.2011. u 17:10 - pre 139 meseci
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
 
Odgovor na temu

Nikola Poša
Backend (PHP) developer
Beograd

Član broj: 173839
Poruke: 1616
*.adsl-a-1.sezampro.rs.



+33 Profil

icon Re: php char to hex problem14.02.2011. u 19:26 - pre 139 meseci
Probaj bez preg_replace, ovako nešto:
Code:
$string = "!\"#$%&'()";
$hex = '';
for ($i=0; $i<strlen($string); $i++) {
    $hex .= sprintf(' %02X', ord($string[$i]));
}
echo $hex;
 
Odgovor na temu

kiklop74
Darko Miletić
Buenos Aires

Član broj: 78422
Poruke: 569
200.49.157.*

Sajt: ar.linkedin.com/pub/darko..


+13 Profil

icon Re: php char to hex problem14.02.2011. u 19:54 - pre 139 meseci
Postoji i funkcija bin2hex


Tko leti vrijedi
 
Odgovor na temu

midgard
Beograd, Vozdovac

Član broj: 59016
Poruke: 127
*.routotelecom.com.



+1 Profil

icon Re: php char to hex problem17.02.2011. u 18:07 - pre 139 meseci
Uspeo sam ovako da resim problem:

Code:
<?php

function to_hex($matches) {
  return sprintf(' %02X', ord($matches[1]));
}

echo preg_replace_callback("/(.)/s", "to_hex", "!\"#$%&'()");

?>


@Nikola

Kad stignem probaci i tvoje resenje.

Hvala u svakom slucaju.

Poz
 
Odgovor na temu

[es] :: PHP :: php char to hex problem

[ Pregleda: 1737 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.