본문 바로가기
#Dev/PHP

HEX 코드 (같은 문자열 byte가 다를때 hex로 비교)

by 알쓸신잡스 2019. 4. 25.

어제 파싱예제를 간단하게 만들어보던 도중

 

변수에 직접 담은 문자열과 파싱한 다음 변수에 담은 문자열이

 

브라우저에서 출력될때는 둘다 하나도 틀림없이 똑같이 출력되었지만

 

변수에 직접 입력한 문자열은 69byte

 

파싱해서 변수에 담은 문자열은 73byte 가 나왔다.

 

처음에는 무엇이 문제인지 몰라 조금 헤메게 되었지만.

 

hex code로 변환하여 비교해본 결과 & 가 문제였다.

 

브라우저에서 출력될때는 & , &  둘다 & 이렇게 출력되기 때문이다.

 

 

         hex             

0~9 , a~f 로 표현되는 16진수

0 1 2 3 4 5 6 7 8 9 이후에는 A B C D E F

이런식으로 표현된다.

 

 

 PHP에서 hex 코드 변환 

$stringToHex = implode(unpack("H*", $String));

 

위와 같이 하면 문자열을 hex 코드로 변환할 수 있다.

 

반대로

 

$hexToString = pack("H*", '616d703b');

 

위와 같이 하면 hex코드를 문자열로 변환할 수 있다.