메뉴 건너뛰기

app

[PHP] 나라기록검색서비스 OpenApi Library for PHP

박영식2008.07.25 13:41조회 수 2872댓글 0

  • 1
    • 글자 크기
나라기록검색 OpenAPI Library for PHP



나라기록검색 OpenAPI Library for PHP는 나라기록검색 OpenAPI를 PHP에서 사용할 수 있게 해주는 라이브러리입니다. XML파싱과 HTTPREQUEST로 XML을 요청하기 위해 xmlparser class와 httprequest class를 사용하였습니다.




작성자 : 박영식




나라기록검색 OpenAPI Library for PHP에 관해 버그 신고를 하거나, 기타 문의할 부분이 있다면, 작성자(박영식)에게 연락을 주세요. 제 홈페이지(http://lispro.ohpy.com)나 메일(suritam9@nate.com) 등으로 연락하시면 됩니다.




다운로드


나라기록검색 OpenAPI Library for PHP는 제 홈페이지에서 받을 수 있습니다.(이 게시물)


 




<aos.zip 의 구성>




PHP.HTTPRequest.php // httprequest class


xmlparser.php // xmlpasing class


aos.php // 나라기록검색 OpenApi Library for PHP


aostest.php // aos 테스트 파일




의존성


나라기록검색 OpenAPI Library for PHP은 다음과 같은 조건을 만족해야 사용할 수 있습니다.


        PHP 5.1 이상


        SPL - Standard PHP Library


        SimpleXML




인클루드 한 라이브러리




        XML Parser Class (GNU General Public License)


        PHP.HTTPRequest (GNU General Public License)




나라기록검색 OpenAPI Library for PHP에서는 PHP함수 file_get_contents()를 서버에서 사용할 수 없는 경우를 위해 HTTPRequest를 사용했습니다.




        aos.php를 포함시키시면 상기한 라이브러리를 포함하고 있습니다.




        require_once 'aos.php';




라이브러리를 로드한 다음에는 나라기록검색 OpenAPI를 사용하기 위해 인증키를 발급 받으셔야합니다.




나라기록검색 서비스담당자(국가기록원 나라기록검색서비스 웹마스터, arc-search@mopas .go.kr)에게 아래 정보를 기록하여서 메일을 보내시면, 인증키를 메일로 발송하여 드립니다. 발급 받은 인증키를 이용하여 OpenAPI를 이용 하실 수 있습니다.


   - 기관명


   - 기관주소


   - 담당자명


   - 전화번호


   - 이메일


   - 사용목적


자세한 내용은 나라기록 100배 활용하기 나라기록검색 OpenAPI 활용을 참고하세요.


http://search.archives.go.kr/ArchivesHelp06.htm


라이브러리를 로드한 다음에는 api키를 설정합니다.


Aos::$aoskey = '나라기록검색서비스 openAPI key';


참고문서에는 rc_type이 필수 parameter로 되어 있는데, 요청하지 않으면, rfile과 ritem이 같이 나옵니다. 그래서 더 많은 검색결과가 제공됩니다.


display의 기본값이 10이라고 되어 있는데, 현재는 20개가 나옵니다.




검색어를 입력하며, 여러 결과를 출력해 주는데, 검색어를 지정합니다.


        $query = "검색어";




원하는 검색결과를 다음과 같이 제공합니다.


1. 검색결과


        제공되는 검색결과 : total, title, prod_name, prod_year, is_open, link


                            rc_code, rc_rfile_no, rc_ritem_no


2. 상세정보 page(HTML scrapping)


상세정보와 철의 경우 관련 건, 건의 경우 철제목에 대한 상세정보 page를 리턴합니다.




※ 현재 링크에 QUERY가 달리지 않아, QUERY를 붙여주는 처리를 했습니다.




- 검색하기 : 아래와 같이 생성하게 되면, 결과가 리턴됩니다.


       $result = new Aos($query,$param); // 생성


1. 검색결과는 search함수로 $param차이를 두고 요청합니다. 결과는 각 변수에 저장되어 있으며, $result->item->rc_code, $result->item->title 등으로 이용하시면 됩니다. 첫 번째 결과의 경우는 item[1]->title, 두 번째 결과는 item[2]->title로 사용하게 되어 있습니다.


예제코드


<?


    include_once 'aos.php'; // 필수 라이브러리
    Aos::$aoskey=""; // 필수 apikey
    $query="검색어"; // 필수 쿼리
    $prod_year_from;
    $prod_year_to;
    $prod_code;
    $is_open;
    $online_reading="Y";
    $record_type;
    $doc_type;
    $mgt_organ;
    $sort;
    $order;
    $display=7; // 기본 설정
    $pageno=1; // 기본 설정
    $param="&prod_year_from=".$prod_year_from."&prod_year_to=".$prod_year_to."&prod_code=".$prod_code."&is_open=".$is_open."&online_reading=".$online_reading."&record_type=".$record_type."&doc_type=".$doc_type."&mgt_organ=".$mgt_organ."&sort=".$sort."&order=".$order."&display=".$display."&pageno=".$pageno;

    $result = new Aos($query,$param); // 생성자


echo $result->title."(".$result->total.")"; // 국가기록원 오픈 API 검색 결과(int)


    foreach($result->item as $item):
        echo "<li>".$item->title."</li>";
    endforeach


?>


-----------------------------결----------------과-------------------------------------


국가기록원 오픈 API 검색 결과(3)


  • 농업경제 문헌검색어집 1985.12

  • 농업경제 문헌검색어집(제5-10호)

  • 한국행정사 문헌목록집
  • -------------------------------------------------------------------------------------------

    레퍼런스


    생성자 : $name = new Aos(string $query, string $param)


    매서드 : $name->Aos(string $query, string $param)


            url을 생성하고, 파싱함수를 호출한다.


            $name->parsing(string $url)


            생성된 url을 httprequest로 요청하여 파싱하고, 간단한 변수에 저장한다.


            $name->doc_type(string $type)


            기호로 된 기록물 형태를 설명글로 반환한다.


            $name->arcave_type(string $type)


            기호로 된 기록물 유형을 설명글로 반환한다.


           $name->link(string $url)


            해당 url 정보의 내용을 출력합니다.



    멤버    $result = new Aos(string $query, string $param); // 생성


            $result->title; // 요청 url 문서의 title


            $result->total; // 검색 총 개수


            $result->url; // 요청 url
           $result->query; // 요청한 query

    // 요청 파라미터 //
        $result->pageno;
        $result->display;
        $result->prod_year_from;
        $result->prod_year_to;
        $result->prod_code;
        $result->is_open;
        $result->online_reading;
        $result->record_type;
        $result->doc_type;
        $result->mgt_organ;
        $result->sort;
        $result->order;
    // 요청 파라미터 //


            $result->item->rc_type; // 개별 검색 결과 철/건구분(철:RFILE/건:RITEM)




            $result->item->rc_code, ; //기록물 연계 기관 번호,기록물 철 번호


            $result->item->rc_rfile_no; //,기록물 건 번호를 뜻합니다.


            $result->item->rc_ritem_no; //내부적으로 검색된 해당 기록물을 찾아가기


                                                            위한 키로 사용됩니다.




            $result->item->title; // 검색결과 문서의 제목[철제목, 건제목]


            $result->item->is_open; // 공개구분


            $result->item->prod_year; // 생산년도


            $result->item->prod_name; // 생산기관명


            $result->item->mgt_org_name; // 소장기관명


            $result->item->arcave_type; // 기호로 표시한 기록물 유형


            기록물 유형


    [01:일반기록물, 02:시청각기록물, 03:대통령기록물, 04:총독부기록물, 05:정부간행물, 06:해외기록물, 07:역사기록물, 08:행정박물, 09:민간기록물, 10:영화필름, 11:방송프로그램]


            $result->item->arcavetype; // 설명글로 표시한 기록물 유형


            $result->item->doc_type; // 기호로 표시한 기록물 형태


            기록물 형태


    [1:행정박물(관인류), 2:행정박물(상징기념물), 3:행정박물(사무집기류), 4:행정박물(기타), A:일반문서류, B:도면류, C:사진,필름류, D:녹음,동영상류, E:카드류, F:대장류, G:국무회의록, H:지도, I:대통령전자문서, M:정부간행물, O:일반도서, P:총독부간행물]


            $result->item->doctype; // 설명글로 표시한 기록물 형태

    박영식 (비회원)
    • 1
      • 글자 크기
    대한민국 zip 코드 한국zipcode (by 박영식) [PHP] XML 파서 (by 박영식)

    댓글 달기

    이전 1 ... 4 5 6 7 8 9 10 11 12 13 14다음
    첨부 (1)
    aos_v1.zip
    9.3KB / Download 49
    위로