웹사이트 작업을 하다보면 배열에 값을 담아 넘겨줄때가 있다. 한글 데이터도 보내고 url 등도 보내기도 하며 javascript 에서 사용하기 위하여 json 등으로 보내기도 한다.
이럴때 한글이나 url 등과 같은 특수 문자가 들어가는 데이터는 종종 오류를 내거나 한글의 경우는 한글이 깨져서 출력되는 경우가 있다.
그럴경우 urlencode 로 인코딩을 해서 데이터를 보내면 에러 없이 전송이 가능하다.
아래 함수는 배열로 담아둔 모든 값을 rawurlencode로 한번에 인코딩 시키는 것과 반대로 배열에 담아둔 모든 값을 rawurldecode 시키는 함수 이다.
배열에 담겨있지 않는 일반 문자열로 사용이 가능하고 1차 배열만이 아니라 다중배열도 하위 상관 없이 모두 변환 시켜준다.
참고페이지 : http://blog.munilive.com/ex/php/urlencode.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | // 인코딩 function str_urlencode( $data ) { if ( is_array ( $data )) { foreach ( $data AS $k => $v ) { if ( is_array ( $v )) $new_data [ $k ] = str_urlencode( $v ); else $new_data [ $k ] = rawurlencode( $v ); } } else { $new_data = rawurlencode( $data ); } return $new_data ; } // 디코딩 function str_urldecode( $data ) { if ( is_array ( $data )) { foreach ( $data AS $k => $v ) { if ( is_array ( $v )) $new_data [ $k ] = str_urldecode( $v ); else $new_data [ $k ] = rawurldecode( $v ); } } else { $new_data = rawurldecode( $data ); } return $new_data ; } |
반응형
'차근차근 > PHP' 카테고리의 다른 글
알고리즘] [소스]PHP에서의 외부 프로그램 실행과 개념 (0) | 2014.09.04 |
---|---|
[PHP] 디렉토리내 파일명 가져오기 (0) | 2014.09.03 |
[함수] javascript escape,unescape by PHP (0) | 2014.09.02 |
[함수] [1원팁] javascript escape/unescape -> php (0) | 2014.09.02 |
[함수] php 서버에서 json escape unescape 하는 예제입니다. (0) | 2014.09.02 |