도로명 주소 데이터 입력을 위한 코드
텍스트 파일로 제공되는 도로명 주소 데이터를 DB에 넣기 위한 코드이다. DB 구조는 적절히 구성해야 하고 이 파일은 텍스트 파일에서 테이터를 읽어 utf-8 형태로 DB에 자료를 입력한다.
<?php
include_once('./_common.php');
set_time_limit ( 0 );
ini_set('memory_limit', '500M');
$files = glob('./*.txt');
if(!function_exists('iconv_utf8')) {
function iconv_utf8($str)
{
return iconv('euc-kr', 'utf-8', $str);
}
}
function convert_content($str)
{
return addslashes(trim($str));
}
foreach($files as $file) {
$zip = array();
$fp = fopen('./'.$file, 'r');
while(!feof($fp)) {
$zip[] = fgets($fp, 4096);
}
fclose($fp);
$rows = count($zip);
$count = 0;
for($i=0; $i<$rows; $i++) {
$line = iconv_utf8($zip[$i]);
$data = explode('|', $line);
$data = array_map('convert_content', $data);
if(!$data[19])
continue;
$sql = " insert into `dorodata`
set sido = '".$data[1]."',
gugun = '".$data[2]."',
beopname = '".$data[3]."',
ri = '".$data[4]."',
san = '".$data[5]."',
jibon = '".$data[6]."',
jibu = '".$data[7]."',
dorocode = '".$data[8]."',
doroname = '".$data[9]."',
jiha = '".$data[10]."',
geonbon = '".$data[11]."',
geonbu = '".$data[12]."',
geonname = '".$data[13]."',
geonsangse = '".$data[14]."',
haengjeong = '".$data[18]."',
zipcode = '".$data[19]."' ";
sql_query($sql);
$count++;
}
}
echo '총 레코드 : '.number_format($count);
?>
사용된 도로명 주소 데이터는 http://www.juso.go.kr/notice/OpenArchivesDetail.do?mgtSn=1075¤tPage=1&searchType=&keyword=¬iceKd=26&type=matching 이다.