구글 팩맨 (소스 코드 포함)

지난 금요일(5월 21일), 팩맨 30주년을 맞아 구글이 로고를 팩맨에 맞추어 만들었습니다.

그리고, 이 게임이 공개되었습니다. 실제로 구글 로고에 쓰였던 것인지 아니면 공개하신 분이 새롭게 작성한 것인지는 확인할 수 없습니다. ^^;  소스 코드는 GitHub에서 직접 받을 수 있으며, 데모는 여기서 확인할 수 있습니다.

추억의 팩맨을 즐겨보세요. :)

IE6 + XHR + gzip + “no-cache” 버그

XE 개발 도중 발견한 IE6의 버그입니다.

모든 IE6에서 발생하는 것은 아니지만, 일부에서는 분명 발생하고 있습니다. 관련한 버그 리포팅을 받고, 테스트용으로 똑같은 IETester를 WindowsXP SP3와 Windows7에 각각 설치했었는데, XP에서는 발생하지 않았고 Windows7에서는 발생했습니다. 해외에서도 비슷한 사례가 보고된 바 있습니다. 단, 해외와는 달리 frame을 포함하지 않아도 발생한다는 것이 저희가 발견한 사례입니다.

버그 발생 조건은 이렇습니다.

  1. IE6 사용
  2. XHR로 컨텐트 요청
  3. 서버에서 gzip 압축으로 컨텐트를 전송하며, Cache-Control 헤더에 no-cache, no-restore 등의 값을 설정했을 때

혹시나 싶어 gzip 압축 전송 옵션을 사용하지 않았더니 아무런 문제없이 정상동작하는 것을 확인했습니다.

해결책을 여러 가지 방법으로 찾아보았으나 결국 ‘IE6의 버그’라는 말만 있을 뿐 마땅한 대안은 없는 듯 합니다. 안 그래도 느린 IE6인데, 성능을 높이기 위한 gzip 전송마저 못하게 한다면 더 느려질 수 밖에 없습니다.

IE6를 업그레이드 해야할 이유가 하나 더 늘었습니다.

[PHP] HTML 엔티티로 표현된 문자열 변환

간혹 다음과 같이 HTML 엔티티 형태로 표현된 문자열을 만날 때가 있습니다.

파이어폭스

이를 PHP에서 일반적인 형태의 문자열로 바꿔주려면 다음과 같은 코드를 사용하면 됩니다.

$str = '파이어폭스';
echo preg_replace_callback('/&#[0-9]+;/', 'unichar', $str);
function unichar($match) {
    return mb_convert_encoding($match[0], 'UTF-8', 'HTML-ENTITIES');
}
Page 3 of 25712345102030...Last »