주소 뽑아내기 소스 - phpschool
페이지 정보
작성자 오원장쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 댓글 0건 조회 4,093회 작성일 12-08-10 15:17본문
function convert($name, $depth)
{
$depth1 = array("서울특별시" => array("서울시", "서울"),
"경기도" => array("경기"),
"충청북도" => array("충북"),
"충청남도" => array("충남"),
"전라북도" => array("전북"),
"전라남도" => array("전남"),
"경상남도" => array("경남"),
"경상북도" => array("경북"),
"제주도" => array("제주"),
"제주특별자치도" => array("제주"),
"강원도" => array("강원"),
"부산광역시" => array("부산", "부산시"),
"울산광역시" => array("울산", "울산시"),
"광주광역시" => array("광주", "광주시"),
"대구광역시" => array("대구", "대구시"),
"대전광역시" => array("대전", "대전시"),
"인천광역시" => array("인천", "인천시")
);
$ret = false;
if (strlen($name) < 5)
{
return array($name);
}
if ($depth == 0)
{
if (array_key_exists($name, $depth1))
{
$ret = $depth1[$name];
}
}
/*
case 0: // 도, 시 break;
case 1: // 시, 구, 군 break;
case 2: // 동, 가, 읍, 면, 구 break;
case 3: // 리, 동 break;
*/
else if ($depth == 1)
{//시군+구
$len = strlen($name);
$letter = $name[$len-2] . $name[$len-1];
if ($letter == "시" || $letter == "군" || $letter == "구")
{
$ret = array(substr($name, 0, $len-2));
}
}
/*
else if ($depth == 2)
{//구
$len = strlen($name);
$letter = $name[$len-2] . $name[$len-1];
if ($letter == "구")
{
$ret = array(substr($name, 0, $len-2));
}
}
*/
else if ($depth == 2 || $depth == 3)
{//읍면동 + 구
$t_name = ereg_replace("[1-9]가|[0-9].[0-9]가|[0-9](.*)[0-9]가", "", $name);
$len = strlen($t_name);
$letter = $t_name[$len-2] . $t_name[$len-1];
if ($letter == "구")
{
$ret = array(substr($name, 0, $len-2));
}
elseif ($letter == "읍" || $letter == "면")
{
$t_name = substr($name, 0, $len-2);
$ret = array($t_name);
}
else if ($letter == "동")
{
if ($t_name == "동본동") $ret = array("동본", "동본동");//예외
else if ($len < 5) $ret = array($t_name);
else
{
$t_name = ereg_replace("[1-9]동|[1-9](.*)[0-9]동|[1-9].동|본동", "동", $t_name);
$t_arr = explode(".", $t_name);
$ret_arr = array();
foreach ($t_arr as $key => $val)
{
$len = strlen($val);
if ($len == 0) continue;
if ($len > 2) $t_letter = $val[$len-2] . $val[$len-1];
if ($len < 5)
{
if ($t_letter == "동") array_push($ret_arr, $val);
else
{
array_push($ret_arr, $val);
array_push($ret_arr, $val . "동");
}
}
else
{
array_push($ret_arr, substr($val, 0, $len-2));
array_push($ret_arr, $val);
}
}
$ret = $ret_arr;
}
}
else
{
$ret = array($t_name);
}
// echo implode("|||", $ret) . "===" . $name . "\n";
}
else //if ($depth == 4)
{//리
$len = strlen($t_name);
$letter = $t_name[$len-2] . $t_name[$len-1];
if ($letter == "동") {
if ($t_name == "동본동") $ret = array("동본", "동본동");//예외
else if ($len < 5) $ret = array($t_name);
else
{
$t_name = ereg_replace("[1-9]동|[1-9](.*)[0-9]동|[1-9].동|본동", "동", $t_name);
$t_arr = explode(".", $t_name);
$ret_arr = array();
foreach ($t_arr as $key => $val)
{
$len = strlen($val);
if ($len == 0) continue;
if ($len > 2) $t_letter = $val[$len-2] . $val[$len-1];
if ($len < 5)
{
if ($t_letter == "동") array_push($ret_arr, $val);
else
{
array_push($ret_arr, $val);
array_push($ret_arr, $val . "동");
}
}
else
{
array_push($ret_arr, substr($val, 0, $len-2));
array_push($ret_arr, $val);
}
}
$ret = $ret_arr;
}
}
else $ret = array($name);
}
return $ret;
}
댓글목록
등록된 댓글이 없습니다.