POST값 통째로 인코딩하기

by 조쉬 posted Apr 06, 2015
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄
인코딩이 필요한 경우...
다음과 같이 코딩하려면 짜증이 좀 나죠.
인수가 늘어나면 또 늘어난데로 수정해줘야 하고.
$_POST['g_name'] = iconv("UTF-8", "EUC-KR", $_POST['g_name']);
$_POST['g_note'] = iconv("UTF-8", "EUC-KR", $_POST['g_note']);
...

 
 
그래서 다음과 같은 방법을 썼습니다.
encoding("UTF-8", "EUC-KR", &$_POST);
function encoding($s1, $s2, $arr) { // 인코딩
    while (list($key, $val) = each($arr)) {
        $arr[$key] = iconv($s1, $s2, $val);
    }
}

'&'는 포인트 연산자로 해당 변수의 참조형으로 넘겨주는 역할을 합니다.
&$_POST 대신에 각종 배열을 넣어서 돌려도 됩니다.
역으로 DB에서 뽑아온 데이터를 넣고 돌려도 되지만, 'mysql_fetch_array'대신 꼭 'mysql_fetch_assoc'를 사용해야 합니다.
$list_recode = mysql_fetch_assoc($query_result)
encoding("EUC-KR", "UTF-8", &$list_recode);

 
이래저래 응용하면 편리할 것입니다.

위 방법은 불필요한 인코딩(숫자,영문)도 발생한다는 것입니다만, 별다른 차이 없습니다.
사람이 편해야지~ (☜ 항상 좋은 것은 아님...)
 
 
 
검색을 위해 : post값일괄변환, post값인코딩, post인코딩, 배열인코딩