어제 파싱예제를 간단하게 만들어보던 도중
변수에 직접 담은 문자열과 파싱한 다음 변수에 담은 문자열이
브라우저에서 출력될때는 둘다 하나도 틀림없이 똑같이 출력되었지만
변수에 직접 입력한 문자열은 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코드를 문자열로 변환할 수 있다.
댓글