배열에 담긴 모든 값을 urlencode 또는 urldecode 하기
웹사이트 작업을 하다 보면 배열에 값을 담아 넘겨줄 때가 있다. 한글 데이터도 보내고 url 등도 보내기도 하며 Javascript에서 사용하기 위하여 json 등으로 보내기도 한다.
이럴 때 한글, url등과 같은 특수 문자가 들어가는 데이터는 종종 오류를 내 거나 한글의 경우는 한글이 깨져서 출력되는 경우가 있다.
그럴 경우 urlencode로 인코딩을 해서 데이터를 보내면 에러 없이 전송이 가능하다.
아래 함수는 배열로 담아둔 모든 값을 rawurlencode로 한 번에 인코딩시키는 것과 반대로 배열에 담아둔 모든 값을 rawurldecode로 디코딩시키는 함수이다.
배열에 담겨있지 않는 일반 문자열로 사용이 가능하고 1차 배열만이 아니라 다중배열도 하위 상관없이 모두 변환시켜준다.
<?php
// 인코딩
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;
}
?> 이 저작물은 크리에이티브 커먼즈 저작자표시-비영리-동일조건변경허락 4.0 국제 라이선스 에 따라 이용할 수 있습니다.
Comments
Related Posts
그누보드4 아이디 변경 함수 - 모든 테이블의 아이디를 변경
그누보드 사용시 아이디값을 이메일등으로 사용하거나 아이디를 변경하게 하도록 하는 사이트들이 존재 한다. 그누보드에서는 아이디 값이 게시판테이블에서나 포인트등 에서 회원을 구분하…
매주의 시작일을 일요일로 정하고 지난주 일요일과 토요일을 구해 오는 함수
매주 시작 요일을 일요일로 지정하고, 한주 시작(일요일)과 종료(토요일)에 대한 정보를 반환하는 함수입니다. 일자를 입력하면 해당 일자가 속한 주의 시작(일요일)과 종료(토요일…
php 생년월일로 별자리 구하기
사용자의 생년월일을 입력하면 사용자에게 해당하는 별자리 코드를 반환하는 함수입니다. 생년월일의 데이트 타입은 형식으로 입력하세요. > 함수가 지원하는 날짜 형식은 모두 사용…