CI 코드

제목 json 한글 encode
글쓴이 블루나라 작성시각 2012/12/06 14:53:11
댓글 : 0 추천 : 0 스크랩 : 0 조회수 : 20245   RSS
 한글 encode를 할때 한글이 변형이 되서 그대로 db에 넣기위해 약간 변형해봤습니다.

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); 

class json 
{
    public function __construct()
    {
        
    }
    
    private function _is_array($params)
    {
        if(!is_array($params))
        {
             return FALSE;
        }

        $keys = array_keys($params);
        
        if(current($keys) != 0)
        {
            return FALSE;
        }

        if(end($keys) != count($keys) - 1)
        {
            return FALSE;
        }
        return TRUE;
    }
    
    public function encode($params)
    {
        $is_array = FALSE;
        $is_array = $this->_is_array($params);
        $str = NULL;
        $pos = 0;  
        
        foreach($params as $k=>$v)
        {
            $pos++;
            
            if(!$is_array)
            {
                $str .= sprintf('"%s":', $k);
            }
            
            if(is_int($v))
            {
                $str .= sprintf('%d', $v);
            }
            else if(is_string($v))
            {
                $v = addslashes($v);
                $str .= sprintf('"%s"', $v);
            }
            else if(is_array($v) || is_object($v))
            {
                $str .= $this->encode($v);
            }
            
            if($pos != count($params))
            {
                $str .= sprintf(',');
            }
        }
        
        if($is_array)
        {
            $str = sprintf('[%s]', $str);
        }
        else
        {
            $str = sprintf('{%s}', $str);
        }
        return $str;
    }
}
?>

사용법은 CI 라이브러리에 등록하신후 encode를 하시면 됩니다.
decode는 json_decode 자체를 사용하시면 됩니다.

민성아빠 ~~~

 다음글 CodeIgniter_2.1.3 기반 학습용게시판1 (21)
 이전글 PHP Native Session을 기반으로 한 Ses... (3)

댓글

없음