도로명 주소 데이터 입력을 위한 코드

텍스트 파일로 제공되는 도로명 주소 데이터를 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&currentPage=1&searchType=&keyword=&noticeKd=26&type=matching 이다.

편리

PHP와 MariaDB, jQuery 등을 사용해 게시판, 쇼핑몰 솔루션을 개발합니다. 그누보드5와 영카트5 개발에 참여 했습니다. Linux와 Nginx는 물론 WordPress, Git 등에도 관심이 많습니다. 자전거 타기 및 사진 촬영을 취미로 하고 있습니다.

카카오톡 플러스친구 채팅 : NCUBE.NET

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.