Skip to Content
Go Back
안형우

안녕하세요. 14년차 풀스택 웹개발자 안형우입니다. 이 블로그에서는 WordPress, PHP, CSS, 사용성, 리눅스 서버 등 풀스택 웹개발에서 마주하는 다양한 문제 상황과 해결책, 필요한 개념들을 다룹니다. 👉 소개


작업물

📌 워드프레스, 답답한 빌더와 플러그인 대신 시원하게 커스터마징하기 2023-01-15
📌 아무도 말하지 않는 PHP의 좋은 점 2018-10-13
📌 유지보수하기 쉬운 CSS 전략(슬라이드) 2016-12-20
📌 워드프레스 테마에서 템플릿 파일 매칭 순서 2013-05-12

배열을 http Query String 으로 만들어 주는 함수

function http_parse_query( $array = NULL, $convention = '%s' ){
	if( count( $array ) == 0 ){
		return '';
	} else {
		if( function_exists( 'http_build_query' ) ){
			$query = http_build_query( $array );
		} else {
			$query = '';
			foreach( $array as $key => $value ){
				if( is_array( $value ) ){
					$new_convention = sprintf( $convention, $key ) . '[%s]';
					$query .= http_parse_query( $value, $new_convention );
				} else {
					$key = urlencode( $key );
					$value = urlencode( $value );
					$query .= sprintf( $convention, $key ) . "=$value&";
				}
			}
			$query = substr($query, 0, mb_strlen($query)-1);
		}
		return $query;
	}
}

URL을 분석해서 쿼리스트링을 뽑아낼 수 있는 함수인 parse_url , 쿼리 스트링을 배열로 변환해 주는 함수인 parse_str 과 함께 섞어서 아래처럼 활용할 수 있다.

언어를 변경해 주는 파일이고, 세션과 URL에 언어 정보를 넣어서 한글이면 영어로 영어면 한글로 전환해 준다.

굳이 URL에 lang=en 같은 정보를 넣는 이유는 검색엔진에 대응하기 위해서다.

if($_SESSION['language']=='en'){
	$_SESSION['language']='ko';
}else{
	$_SESSION['language']='en';
}
$parse = parse_url($_SERVER['HTTP_REFERER']);
$query_array = array();
if(isset($parse['query'])){
	parse_str($parse['query'], $query_array);
}
$query_array['lang']=$_SESSION['language'];
$query_string = http_parse_query($query_array);
header('location: '.$parse['path'].'?'.$query_string);

안녕하세요. 14년차 풀스택 웹개발자 안형우입니다. 이 블로그에서는 WordPress, PHP, CSS, 사용성, 리눅스 서버 등 풀스택 웹개발에서 마주하는 다양한 문제 상황과 해결책, 필요한 개념들을 다룹니다. 👉 소개


작업물

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다