Exemplo n.º 1
0
 public function read_line($delimiter = '|')
 {
     // 데이터를 읽는다.
     $line = parent::read_line($delimiter);
     if ($line === false || count($line) < 14) {
         return false;
     }
     // 도로명주소를 정리한다.
     $road_id = trim($line[8]);
     $num_major = intval($line[10]);
     $num_minor = intval($line[11]);
     if (!$num_minor) {
         $num_minor = null;
     }
     $is_basement = intval($line[9]);
     // 지번주소를 정리한다.
     $dongri = trim($line[4]);
     if ($dongri === '') {
         $dongri = trim($line[3]);
     }
     $dongri = preg_replace('/\\(.+\\)/', '', $dongri);
     $jibeon_major = intval($line[6]);
     $jibeon_minor = intval($line[7]);
     if (!$jibeon_minor) {
         $jibeon_minor = null;
     }
     $is_mountain = intval($line[5]);
     // 변경내역을 정리한다.
     $change_reason = $line[13] === '' ? null : intval($line[13]);
     // 데이터를 정리하여 반환한다.
     return (object) array('road_id' => $road_id, 'num_major' => $num_major, 'num_minor' => $num_minor, 'is_basement' => $is_basement, 'dongri' => $dongri, 'jibeon_major' => $jibeon_major, 'jibeon_minor' => $jibeon_minor, 'is_mountain' => $is_mountain, 'change_reason' => $change_reason);
 }
Exemplo n.º 2
0
 public function read_line($delimiter = '|')
 {
     // 데이터를 읽는다.
     $line = parent::read_line($delimiter);
     if ($line === false || count($line) < 15) {
         return false;
     }
     if (!ctype_digit($line[0])) {
         return true;
     }
     // 상세 데이터를 읽어들인다.
     $sido_ko = trim($line[1]);
     $sido_en = str_replace('-si', '', trim($line[2]));
     $sigungu_ko = trim($line[3]);
     if (!$sigungu_ko) {
         $sigungu_ko = null;
     }
     $sigungu_en = trim($line[4]);
     if (!$sigungu_en) {
         $sigungu_en = null;
     }
     $eupmyeon_ko = trim($line[5]);
     $eupmyeon_en = trim($line[6]);
     $road_name_ko = trim($line[7]);
     $road_name_en = trim($line[8]);
     $is_basement = intval(trim($line[9])) ? 1 : 0;
     $range_start_major = trim($line[10]);
     if (!$range_start_major) {
         $range_start_major = null;
     }
     $range_start_minor = trim($line[11]);
     if (!$range_start_minor) {
         $range_start_minor = null;
     }
     $range_end_major = trim($line[12]);
     if (!$range_end_major) {
         $range_end_major = null;
     }
     $range_end_minor = trim($line[13]);
     if (!$range_end_minor) {
         $range_end_minor = null;
     }
     $range_type = intval(trim($line[14]));
     // 특별시/광역시 아래의 자치구와 행정시 아래의 일반구를 구분한다.
     if (($pos = strpos($sigungu_ko, ' ')) !== false) {
         $ilbangu_ko = substr($sigungu_ko, $pos + 1);
         $sigungu_ko = substr($sigungu_ko, 0, $pos);
         if (($engpos = strpos($sigungu_en, ',')) !== false) {
             $ilbangu_en = trim(substr($sigungu_en, 0, $engpos));
             $sigungu_en = trim(substr($sigungu_en, $engpos + 1));
         } else {
             $ilbangu_en = null;
         }
     } else {
         $ilbangu_ko = null;
         $ilbangu_en = null;
     }
     // 데이터를 정리하여 반환한다.
     return (object) array('sido_ko' => $sido_ko, 'sido_en' => $sido_en, 'sigungu_ko' => $sigungu_ko, 'sigungu_en' => $sigungu_en, 'ilbangu_ko' => $ilbangu_ko, 'ilbangu_en' => $ilbangu_en, 'eupmyeon_ko' => $eupmyeon_ko, 'eupmyeon_en' => $eupmyeon_en, 'road_name_ko' => $road_name_ko, 'road_name_en' => $road_name_en, 'range_start_major' => $range_start_major, 'range_start_minor' => $range_start_minor, 'range_end_major' => $range_end_major, 'range_end_minor' => $range_end_minor, 'range_type' => $range_type, 'is_basement' => $is_basement, 'postcode5' => trim($line[0]));
 }
Exemplo n.º 3
0
 public function read_line($delimiter = '|')
 {
     // 데이터를 읽는다.
     $line = parent::read_line($delimiter);
     if ($line === false || count($line) < 2) {
         return false;
     }
     // 데이터를 정리하여 반환한다.
     return (object) array('ko' => trim($line[0]), 'en' => trim($line[1]));
 }
Exemplo n.º 4
0
 public function read_line($delimiter = '|')
 {
     // 데이터를 읽는다.
     $line = parent::read_line($delimiter);
     if ($line === false || count($line) < 10) {
         return false;
     }
     if (!ctype_digit($line[0])) {
         return true;
     }
     // 상세 데이터를 읽어들인다.
     $sido = trim($line[1]);
     $sigungu = trim($line[2]);
     if ($sigungu === '') {
         $sigungu = null;
     }
     $eupmyeon = trim($line[3]);
     $pobox_name = trim($line[4]);
     $range_start_major = trim($line[5]);
     if (!$range_start_major) {
         $range_start_major = null;
     }
     $range_start_minor = trim($line[6]);
     if (!$range_start_minor) {
         $range_start_minor = null;
     }
     $range_end_major = trim($line[7]);
     if (!$range_end_major) {
         $range_end_major = null;
     }
     $range_end_minor = trim($line[8]);
     if (!$range_end_minor) {
         $range_end_minor = null;
     }
     // 특별시/광역시 아래의 자치구와 행정시 아래의 일반구를 구분한다.
     if (($pos = strpos($sigungu, ' ')) !== false) {
         $ilbangu = substr($sigungu, $pos + 1);
         $sigungu = substr($sigungu, 0, $pos);
     } else {
         $ilbangu = null;
     }
     // 우편번호를 정리한다.
     $postcode6 = trim($line[9]);
     if (strlen($postcode6) !== 6) {
         $postcode6 = null;
     }
     $postcode5 = trim($line[0]);
     if (strlen($postcode5) !== 5) {
         $postcode5 = null;
     }
     // 데이터를 정리하여 반환한다.
     return (object) array('postcode6' => $postcode6, 'postcode5' => $postcode5, 'sido' => $sido, 'sigungu' => $sigungu, 'ilbangu' => $ilbangu, 'eupmyeon' => $eupmyeon, 'pobox_name' => $pobox_name, 'range_start_major' => $range_start_major, 'range_start_minor' => $range_start_minor, 'range_end_major' => $range_end_major, 'range_end_minor' => $range_end_minor);
 }
Exemplo n.º 5
0
 public function read_line($delimiter = '|')
 {
     // 데이터를 읽는다.
     $line = parent::read_line($delimiter);
     if ($line === false || count($line) < 20) {
         return false;
     }
     // 주소의 각 구성요소를 파악한다.
     $road_id = trim($line[0]) . trim($line[1]);
     $road_section = str_pad(trim($line[4]), 2, '0', STR_PAD_LEFT);
     $road_name = trim($line[2]);
     $road_name_en = trim($line[3]);
     $sido = trim($line[5]);
     $sido_en = str_replace('-si', '', trim($line[15]));
     $sigungu = trim($line[6]);
     $sigungu_en = trim($line[16]);
     $eupmyeon = trim($line[9]);
     $eupmyeon_en = trim($line[17]);
     $parent_road_id = $line[10] === '' ? null : trim($line[0]) . trim($line[10]);
     $previous_road_id = $line[14] === '' ? null : trim($line[14]);
     $change_reason = $line[13] === '' ? null : intval($line[13]);
     $updated = trim($line[18]);
     // 동 정보는 여기서 기억할 필요가 없다.
     if ($eupmyeon === '' || !preg_match('/[읍면]$/u', $eupmyeon)) {
         $eupmyeon = null;
         $eupmyeon_en = null;
     }
     // 특별시/광역시 아래의 자치구와 행정시 아래의 일반구를 구분한다.
     if (($pos = strpos($sigungu, ' ')) !== false) {
         $ilbangu = substr($sigungu, $pos + 1);
         $sigungu = substr($sigungu, 0, $pos);
         if (($engpos = strpos($sigungu_en, ',')) !== false) {
             $ilbangu_en = trim(substr($sigungu_en, 0, $engpos));
             $sigungu_en = trim(substr($sigungu_en, $engpos + 1));
         } else {
             $ilbangu_en = null;
         }
     } else {
         $ilbangu = null;
         $ilbangu_en = null;
     }
     // 시군구가 없는 경우(세종시)를 처리한다.
     if ($sigungu === '') {
         $sigungu = null;
         $sigungu_en = null;
     }
     // 데이터를 정리하여 반환한다.
     return (object) array('road_id' => $road_id, 'road_section' => $road_section, 'road_name_ko' => $road_name, 'road_name_en' => $road_name_en, 'sido_ko' => $sido, 'sido_en' => $sido_en, 'sigungu_ko' => $sigungu, 'sigungu_en' => $sigungu_en, 'ilbangu_ko' => $ilbangu, 'ilbangu_en' => $ilbangu_en, 'eupmyeon_ko' => $eupmyeon, 'eupmyeon_en' => $eupmyeon_en, 'parent_road_id' => $parent_road_id, 'previous_road_id' => $previous_road_id, 'change_reason' => $change_reason, 'updated' => $updated);
 }
Exemplo n.º 6
0
 public function read_line($delimiter = '|')
 {
     // 데이터를 읽는다.
     $line = parent::read_line($delimiter);
     if ($line === false || count($line) < 29) {
         return false;
     }
     // 행정구역 정보를 정리한다.
     $sido = trim($line[1]);
     $sigungu = trim($line[2]);
     if ($sigungu === '') {
         $sigungu = null;
     }
     $ilbangu = null;
     $eupmyeon = trim($line[3]);
     if ($eupmyeon === '' || !preg_match('/[읍면]$/u', $eupmyeon)) {
         $eupmyeon = null;
     }
     if (($pos = strpos($sigungu, ' ')) !== false) {
         $ilbangu = substr($sigungu, $pos + 1);
         $sigungu = substr($sigungu, 0, $pos);
     }
     // 도로명주소를 정리한다.
     $road_name = trim($line[9]);
     $road_id = trim($line[8]);
     $road_section = trim($line[16]);
     $num_major = intval($line[11]);
     $num_minor = intval($line[12]);
     if (!$num_minor) {
         $num_minor = null;
     }
     $is_basement = intval($line[10]);
     $building_id = trim($line[15]);
     // 지번주소를 정리한다.
     $dongri = trim($line[4]);
     if ($dongri === '') {
         $dongri = trim($line[3]);
     }
     $dongri = preg_replace('/\\(.+\\)/', '', $dongri);
     $admin_dongri = trim($line[18]);
     if (!$admin_dongri || !preg_match('/.+동$/u', $admin_dongri)) {
         $admin_dongri = null;
     }
     $jibeon_major = intval($line[6]);
     $jibeon_minor = intval($line[7]);
     if (!$jibeon_minor) {
         $jibeon_minor = null;
     }
     $is_mountain = intval($line[5]);
     // 우편번호를 정리한다.
     $postcode6 = trim($line[19]);
     if (strlen($postcode6) !== 6) {
         $postcode6 = null;
     }
     $postcode5 = trim($line[27]);
     if (strlen($postcode5) !== 5) {
         $postcode5 = null;
     }
     // 건물명을 정리한다.
     $is_common_residence = intval($line[26]);
     if ($is_common_residence && trim($line[13])) {
         $common_residence_name = trim(preg_replace('/\\s제?[a-zA-Z0-9]+동$/u', '', trim($line[13])));
     } else {
         $common_residence_name = null;
     }
     $building_names = array();
     if (!$common_residence_name) {
         if (($building = trim($line[13])) !== '') {
             $building_names[] = $building;
         }
     }
     if (($building = trim($line[21])) !== '') {
         $building_names[] = $building;
     }
     if (($building = trim($line[25])) !== '') {
         $building_names[] = $building;
     }
     $building_names = array_unique($building_names);
     $building_detail = preg_replace('/[^가-힣a-zA-Z0-9\\/\\.\\(\\)-]/', '', trim($line[14]));
     if ($building_detail === '') {
         $building_detail = null;
     }
     $has_detail = intval($line[28]);
     // 변경내역을 정리한다.
     $previous_address = $line[24] === '' ? null : trim($line[24]);
     $change_reason = $line[22] === '' ? null : intval($line[22]);
     $updated = trim($line[23]);
     // 데이터를 정리하여 반환한다.
     return (object) array('sido' => $sido, 'sigungu' => $sigungu, 'ilbangu' => $ilbangu, 'eupmyeon' => $eupmyeon, 'road_name' => $road_name, 'road_id' => $road_id, 'road_section' => $road_section, 'num_major' => $num_major, 'num_minor' => $num_minor, 'is_basement' => $is_basement, 'dongri' => $dongri, 'admin_dongri' => $admin_dongri, 'jibeon_major' => $jibeon_major, 'jibeon_minor' => $jibeon_minor, 'is_mountain' => $is_mountain, 'postcode6' => $postcode6, 'postcode5' => $postcode5, 'is_common_residence' => $is_common_residence, 'common_residence_name' => $common_residence_name, 'building_id' => $building_id, 'building_names' => $building_names, 'building_detail' => $building_detail, 'has_detail' => $has_detail, 'previous_address' => $previous_address, 'change_reason' => $change_reason, 'updated' => $updated);
 }
Exemplo n.º 7
0
 public function read_line($delimiter = '|')
 {
     // 데이터를 읽는다.
     $line = parent::read_line($delimiter);
     if ($line === false || count($line) < 14) {
         return false;
     }
     if (!ctype_digit($line[0])) {
         return true;
     }
     // 상세 데이터를 읽어들인다.
     $sido_ko = trim($line[1]);
     $sido_en = str_replace('-si', '', trim($line[2]));
     $sigungu_ko = trim($line[3]);
     if (!$sigungu_ko) {
         $sigungu_ko = null;
     }
     $sigungu_en = trim($line[4]);
     if (!$sigungu_en) {
         $sigungu_en = null;
     }
     $eupmyeon_ko = trim($line[5]);
     $eupmyeon_en = trim($line[6]);
     $dongri_ko = trim($line[7]);
     if (!$dongri_ko) {
         $dongri_ko = null;
     }
     $dongri_en = null;
     $admin_dongri = trim($line[8]);
     if (!$admin_dongri) {
         $admin_dongri = null;
     }
     $is_mountain = intval(trim($line[9])) ? 1 : 0;
     $range_start_major = trim($line[10]);
     if (!$range_start_major) {
         $range_start_major = null;
     }
     $range_start_minor = trim($line[11]);
     if (!$range_start_minor) {
         $range_start_minor = null;
     }
     $range_end_major = trim($line[12]);
     if (!$range_end_major) {
         $range_end_major = null;
     }
     $range_end_minor = trim($line[13]);
     if (!$range_end_minor) {
         $range_end_minor = null;
     }
     // 특별시/광역시 아래의 자치구와 행정시 아래의 일반구를 구분한다.
     if (($pos = strpos($sigungu_ko, ' ')) !== false) {
         $ilbangu_ko = substr($sigungu_ko, $pos + 1);
         $sigungu_ko = substr($sigungu_ko, 0, $pos);
         if (($engpos = strpos($sigungu_en, ',')) !== false) {
             $ilbangu_en = trim(substr($sigungu_en, 0, $engpos));
             $sigungu_en = trim(substr($sigungu_en, $engpos + 1));
         } else {
             $ilbangu_en = null;
         }
     } else {
         $ilbangu_ko = null;
         $ilbangu_en = null;
     }
     // 읍면과 동을 구분한다.
     if (preg_match('/[동가]$/u', $eupmyeon_ko) && $dongri_ko === null) {
         $dongri_ko = $eupmyeon_ko;
         $dongri_en = $eupmyeon_en;
         $eupmyeon_ko = null;
         $eupmyeon_en = null;
     }
     // 데이터를 정리하여 반환한다.
     return (object) array('sido_ko' => $sido_ko, 'sido_en' => $sido_en, 'sigungu_ko' => $sigungu_ko, 'sigungu_en' => $sigungu_en, 'ilbangu_ko' => $ilbangu_ko, 'ilbangu_en' => $ilbangu_en, 'eupmyeon_ko' => $eupmyeon_ko, 'eupmyeon_en' => $eupmyeon_en, 'dongri_ko' => $dongri_ko, 'dongri_en' => $dongri_en, 'range_start_major' => $range_start_major, 'range_start_minor' => $range_start_minor, 'range_end_major' => $range_end_major, 'range_end_minor' => $range_end_minor, 'is_mountain' => $is_mountain, 'admin_dongri' => $admin_dongri, 'postcode5' => trim($line[0]));
 }