#01. 우편번호를 우체국 사이트에서 다운 받는다

http://www.epost.go.kr/search/zipcode/newAddressDown.jsp


#02. 엑셀로 변환한다

(아래 내용은 우체국 사이트에도 있습니다)


CSV(텍스트) 파일로 저장한다


#03. CSV(텍스트) 파일을 DB 에 입력한다


1. DB 테이블 생성

DROP TABLE IF EXISTS `address_org`;

CREATE TABLE  `address_org` (

`idx` BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT '일련번호',

`zipcode` CHAR(6) NULL DEFAULT NULL COMMENT '우편번호',

`zipcode_no` VARCHAR(5) NULL DEFAULT NULL COMMENT '우편일련번호',

`sido` VARCHAR(50) NULL DEFAULT NULL COMMENT '시도',

`sido_e` VARCHAR(70) NULL DEFAULT NULL COMMENT '시도영문',

`sigungu` VARCHAR(50) NULL DEFAULT NULL COMMENT '시군구',

`sigungu_e` VARCHAR(70) NULL DEFAULT NULL COMMENT '시군구영문',

`upmyon` VARCHAR(45) NULL DEFAULT NULL COMMENT '읍면',

`upmyon_e` VARCHAR(70) NULL DEFAULT NULL COMMENT '읍면영문',

`road_code` VARCHAR(35) NULL DEFAULT NULL COMMENT '도로명코드',

`road_name` VARCHAR(50) NULL DEFAULT NULL COMMENT '도로명',

`road_name_e` VARCHAR(70) NULL DEFAULT NULL COMMENT '도로명영문',

`is_under` CHAR(1) NULL DEFAULT NULL COMMENT '지하여부',

`bdno_M` VARCHAR(30) NULL DEFAULT NULL COMMENT '건물번호본번',

`bdno_S` VARCHAR(30) NULL DEFAULT NULL COMMENT '건물번호부번',

`bdno_D` VARCHAR(50) NULL DEFAULT NULL COMMENT '건물관리번호',

`mass_delevery` VARCHAR(50) NULL DEFAULT NULL COMMENT '다량배달처명',

`sigungubd_name` VARCHAR(50) NULL DEFAULT NULL COMMENT '시군구용건물명',

`law_dong_code` VARCHAR(35) NULL DEFAULT NULL COMMENT '법정동코드',

`law_dong_name` VARCHAR(50) NULL DEFAULT NULL COMMENT '법정동명',

`ri` VARCHAR(45) NULL DEFAULT NULL COMMENT '리',

`is_mountin` CHAR(1) NULL DEFAULT NULL COMMENT '산여부',

`jibun_M` VARCHAR(10) NULL DEFAULT NULL COMMENT '지번본번',

`upmyundong_no` VARCHAR(5) NULL DEFAULT NULL COMMENT '읍면동일련번호',

`jibun_S` VARCHAR(10) NULL DEFAULT NULL COMMENT '지번부번',

PRIMARY KEY (idx),

INDEX inx_roadnume (road_name)

) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='도로명주소 원본';



2. PHP 소스 작업

$enclosed = '"';
$escaped = '\\';
$lineend = '\\r\\n';
$ignore = "";
$afields = array( 'zipcode', 'zipcode_no', 'sido', 'sido_e', 'sigungu', 'sigungu_e', 'upmyon', 'upmyon_e', 'road_code', 'road_name', 'road_name_e', 'is_under', 'bdno_M', 'bdno_S', 'bdno_D', 'mass_delevery', 'sigungubd_name', 'law_dong_code', 'law_dong_name', 'ri', 'is_mountin', 'jibun_M', 'upmyundong_no', 'jibun_S' );

$query = "LOAD DATA LOCAL INFILE '".$table_name.".csv' INTO TABLE address_org \n";
$query .= "FIELDS TERMINATED BY ',' \n";
$query .= "OPTIONALLY ENCLOSED BY '\"' \n";
$query .= "LINES TERMINATED BY '\n' \n";
$query .= "(" . implode(',', $afields) . "); ";

mysql_query($query) or die ("Query error: " . mysql_error());


위의 작업을 함수 형태로 만들어 써도 되겠다

function import_csv( $table, $afields, $filename, $delim = ',', $enclosed = '"', $escaped = '\\',  $lineend = '\\r\\n', $hasheader = FALSE) {      
    if ( $hasheader ) $ignore = "IGNORE 1 LINES ";
    else $ignore = "";
    $q_import = 
        "LOAD DATA INFILE '" . $_SERVER['DOCUMENT_ROOT'] . $filename . "' INTO TABLE " . $table . " " .
        "FIELDS TERMINATED BY '" . $delim . "' ENCLOSED BY '" . $enclosed . "' " .
        "    ESCAPED BY '" . $escaped . "' " .
        "LINES TERMINATED BY '" . $lineend . "' " . $ignore . "(" . implode(',', $afields) . ")"
    ;
    return mysql_query($q_import);
}


이상 새주소(도로명) 입력 방법 입니다.
`address_org` 테이블 데이터들을 가공하여 원하시는대로 사용하세요~


'Programming > PHP' 카테고리의 다른 글

img태그에 div태그를 감싸주는 정규식  (0) 2015.01.12
mysql 메모리 사이즈 늘리기  (0) 2015.01.09


img태그에 div태그를 감싸주는 정규식


원 소스

<img src='./test.gif'>

<img src="http://www.phpschool.com/logo.png" />

<img src="img/logo.jpg" width="400" height="300" alt="logo" />


변환된 값

<div style="width: 100%; text-align: center"><img src='./test.gif'></div>

<div style="width: 100%; text-align: center"><img src="http://www.phpschool.com/logo.png" /></div>

<div style="width: 100%; text-align: center"><img src="img/logo.jpg" width="400" height="300" alt="logo" /></div>


정규식 소스


preg_replace('/(<img .*>)/','<div style="width: 100%; text-align: center">${1}</div>',$str);



'Programming > PHP' 카테고리의 다른 글

우편번호 DB 가공 하기  (0) 2015.01.12
mysql 메모리 사이즈 늘리기  (0) 2015.01.09
파일상에서 늘리기
ini_set('memory_limit','512M'); // 원하는 용량 설정
 
.htaccess 설정 (제일 많이 사용)
php_value memory_limit 64M
 
아파치 모듈 설정 (서버 호스팅의 경우 전체 계정에 설정 가능)
<IfModule mod_php5.c>
php_value memory_limit 64M
</IfModule>


'Programming > PHP' 카테고리의 다른 글

우편번호 DB 가공 하기  (0) 2015.01.12
img태그에 div태그를 감싸주는 정규식  (0) 2015.01.12

+ Recent posts