[php] 도로명 주소 나누기

1521 단어 phpphp

Test Case

세종특별자치시 집현중앙7로 6
서울시 강남구 남부순환로 2609
인천시 연수구 연수동 578-4

code

$address = "서울시 강남구 남부순환로 2609";

$sido = "";
$sigungu = "";
$roadname = "";

// 공백 기준으로 나눈다
$array_addr = explode(' ', $address);

// 첫번째 데이터는 무조건 시
$sido = trim($array_addr[0]);

// 두번째 데이터부터 테스트 필요
$string = trim($array_addr[1]);
$last_char = mb_substr($string, -1,  1,  'utf-8');


if ($last_char == "구" || $last_char == "군") {
    $start_num = 2;
    $sigungu = trim($array_addr[1]);
} else {
    $start_num = 1;
}


for ($i = $start_num; $i < count($array_addr); $i++) {
    $roadname .= trim($array_addr[$i]) . " ";
}


echo "시 : "  . $sido . "<br />";
echo "시군구 : "  . $sigungu . "<br />";
echo "도로명 : "  . trim($roadname) . "<br />";

DB에 도로명 주소까지 저장되어 있는 주소를 나눠서 xml로 보낼 일이 생겨서 만들었다.
코드는 넘넘 간단하Gu

string 마지막 문자 뽑아오기

sbstr($string, -1);

이걸로 많이들 쓰지만 한글은 글자당 2byte라 위처럼 쓰면 안 된다.

mb_substr($string, -1, 1, 'utf-8');

인코딩 필수

좋은 웹페이지 즐겨찾기