'php'에 해당되는 글 5건
- 2014.02.14 PHP 5.2 이하 버전에서 JSON 사용하기
웹 프로그래밍/PHP
, 2014. 2. 14. 21:24
PHP 5.2 이하 버전에서 JSON 사용하기
오래전 만들어준 쇼핑몰에서 갑자기 제품 검색이 되지 않는 문제로 문의가 들어왔다.
이 쇼핑몰이 PHP단이나 JS단에서(많은 부분이 AJAX처리..) 이런저런 기능이 커스터마이징되서 많이 들어가 있었는데 그 중하나가 상품목록을 AJAX롤 보여주는 기능이었고 검색 후 목록이 나오지 않는 문제가 발행한것이었다..
작업을 위해 rsync로 본인의 작업서버로 가져오려 하려했지만 RSA값이 틀리다고 나오는것으로 서버가 바뀌었다는걸 직감했는데 아파치 PHP버전이 무려 4.4.9!!!! 왜 낮은 버전으로 내렸을까?.. 이유는 모르겠고 아무튼 이리저리 확인해보니 JSON인코딩이 잘 안되는 문제였다. -솔루션에서 제공하는 함수로 해도 마찮가지-
이리저리 뒤져보고하다가 아래와 같은 코드로 해결했기에 소개한다.
- //인코드함수
- function json_encode2($data) {
- switch (gettype($data)) {
- case 'boolean':
- return $data?'true':'false';
- case 'integer':
- case 'double':
- return $data;
- case 'string':
- return '"'.strtr($data, array('\\'=>'\\\\','"'=>'\\"')).'"';
- case 'array':
- $rel = false; // relative array?
- $key = array_keys($data);
- foreach ($key as $v) {
- if (!is_int($v)) {
- $rel = true;
- break;
- }
- }
- $arr = array();
- foreach ($data as $k=>$v) {
- $arr[] = ($rel?'"'.strtr($k, array('\\'=>'\\\\','"'=>'\\"')).'":':'').json_encode2($v);
- }
- return $rel?'{'.join(',', $arr).'}':'['.join(',', $arr).']';
- default:
- return '""';
- }
- }
- $tmpJson = json_encode2($arrayData); //JSON 인코딩
- $tmpJson = nl2br($tmpJson); //[ br ] 추가
- $tmpJson = preg_replace('/\r\n|\r|\n/','',$tmpJson); //개행 삽입문자 제거.. JSON코드에 개행문자가 있으면 JS가 해석하지 못하는 경우가 있음
함수의 원 출처는 불명..
'웹 프로그래밍 > PHP' 카테고리의 다른 글
[킴스큐 RB팁] 이미지 캡션 보여주기 {{개정판}} (0) | 2011.10.30 |
---|---|
자동 글 등록 ( 스팸 글 ) CAPTCHA로 막아 봅시다. (1) | 2010.06.22 |
코드 이그나이터 사용자 가이드 번역 완료 (0) | 2009.04.12 |
웹 호스팅 정보 보여주기 #2 (0) | 2009.04.12 |
웹호스팅 디스크 사용량 그래프로 보여주기 (2) | 2009.04.10 |