Egloos | Log-in  


PHP로 RSS수집기를 만들어 보자. - 2 -

* 연습삼아 하고 있으므로(현재진행형) 본 내용은 수정 될 수 있습니다.

PHP도 프로그래밍인 이상 module화는 꼭 필요하다고 생각합니다.
따로 관리 할 수 있는 부분은 다른 파일로 만들어 두는게 프로그래밍의 기본이라면 기본이라고 할 수 있겠지요. 그렇게해야 디버깅도 편하고 차후 수정 업데이트가 편리합니다.

그래서 일종의 Header파일인 include 파일을 만들어 봅시다.
PHP가 preprocess인 만큼 이 헤더도 로딩되는 순간 처리됩니다. 웹 프로그램의 작업중에서 가장 빈번하게 쓰이는 것이 DB관리일거라 생각합니다. RSS를 불러와서 parsing하는 작업보다 더 많이 쓰이지요. 하물며 RSS주소를 선택하는 과정에서도 DB접근은 꼭 필요합니다.

그래서 맨 먼저 DB연결을 만드는 것을 include화 시키겠습니다. 나중에 DB정보를 수정할 때에는 이 파일만 수정하면 되겠지요.

[mysqlconn.inc]

<?php
    // mysql계정에 접속, DB 선택 - $conn 반환
    // include 후 mysqlconn() 실행
   
    function mysqlconn()
    {
        $conn = mysql_connect("localhost","root","apmsetup");
        if (!$conn)
            die('MySQL에 접속 불가능합니다: ' . mysql_error());
        if (!mysql_select_db("rsscollector", $conn))
            die('선택된 DB에 접속 불가능합니다: ' . mysql_error());

        mysql_query("set session character_set_connection=utf8;");
        mysql_query("set session character_set_results=utf8;");
        mysql_query("set session character_set_client=utf8;");

        return $conn;
    }

    // 변수를 받아 에러메시지 출력
    function mysqlerr($arg)
    {
        if(!$arg)
        {
            $errorNo = mysql_errno();
            $errorMsg = mysql_error();

            echo "에러코드 ".$errorNo.":".$errorMsg;
            die();
        }
    }
?>

소스를 살펴보시면 localhost라고 되어있는 부분은 DB가 있는 서버 주소입니다. 보통 DB와 php파일은 같이 있으니 localhost로 하였습니다.
root/apmsetup은 MySQL의 계정이고 rsscollector는 제가만든 DB의 이름입니다. 앞에서 말했듯이 DB는 각각의 계정과 연결 될 수 있습니다. root계정은 모든 계정을 관리하는 최상위 계정(Administrator)으로 볼 수 있습니다. 지금은 그냥 공부하는 차원에서 쓰는 것이므로 root계정을 쓰지만 실제 서버를 빌려서 쓰실 경우에는 제공받은 MySQL계정과 DB를 이용해야 합니다.


참고로, 위 프로그램은 제가 순수하게 만든 프로그램이 아닙니다. [부산대학교 2006년 2학기 인터넷프로그래밍]에서 텀프로젝트로 제작했던 소스를 다시 사용함을 알려드립니다. 함께한 조원이 만든 것을 가져다 쓰는 점을 이해해 주시고, 함께 제작한 프로젝트이므로 나름 동등한 권리를 가졌다고 생각합니다. :) 문제가 발생하면 폭파할지도 모릅니다.
사실 인터넷이라는게 돌고 도는 세상이라 저 소스도 어디서 왔는지 모르죠!

위 같이 include파일을 만들어 include시키고, 해당 함수를 호출하면 DB에 접근된 상태가 됩니다.

mysql_query("set session character_set_connection=utf8;");
mysql_query("set session character_set_results=utf8;");
mysql_query("set session character_set_client=utf8;");

이 부분은 MySQL의 문자를 설정하는 부분입니다. 이게 상당히 골치아픈데, 서버/DB마다 Character Set을 다르게 쓰고 있습니다. euc-kr을 쓰는 곳도 있고, utf-8을 쓰는 곳도 있습니다. 저는 utf-8이 Web2.0시대에 대세인거라 생각하여 utf-8을 쓰겠습니다. 실제로 RSS/XML도 utf-8로 인코딩되고 있지요. 대충 서버에서 제공하는 Character Set을 써도 될 것 같긴 합니다.

mysqlerr()함수는 MySQL접근시 에러가 발생하면 에러코드를 화면에 뿌려주는 역할을 합니다. 애초에 에러가 발생하지 않도록 해야겠지만... 소스코드를 훑어만 봐도 이해가 될 정도로 쉬우므로 그냥 넘어가도록 합시다.

이번에는 여기까지..
다음번은 완성하고 테스트 한 후에 올리겠습니다. 아무래도 미흡해서..;;

이 글과 관련있는 글을 자동검색한 결과입니다 [?]

by △□○ | 2007/07/21 00:43 | 공부 | 트랙백 | 덧글(1)

Commented by 아저씨 at 2007/07/21 23:46
뭐야, 이거. 몰라, 무서워.
※ 이 포스트는 더 이상 덧글을 남길 수 없습니다.

◀ 이전 페이지          다음 페이지 ▶