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); }
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])); }
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])); }
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); }
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); }
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); }
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])); }