본문 바로가기

IT/PHP

php) 네이버 실시간 검색어 키워드 가져오기

<?php

include_once "./_common.php";

//네이버 실시간 인기검색어 ( 네이버메인 )

function getPopularKeyword()

{

    /**

    * @brief Get_PopularKeyword함수

    * @return 네이버 인기검색어 순위를 원소로 하는 오브젝트 반환

    */

    $popret = range(1,10);

    $szServer = "www.naver.com";

    $fp  = fsockopen($szServer, 80, $errorno, $errstr, 30);

    $string = "";

    if(!$fp)

    {

        printf("%s(%s)",$errstr, $errno);

    }

    else

    {

        fputs ($fp, "GET / HTTP/1.0\r\n\r\n");

        while(!feof($fp)) {

            $string .= fgets($fp, 128);

        }

        fclose($fp);

    }


    $a = explode("<ol style=\"margin-top:0px;\" id=\"realrank\">", $string);

    $b = explode("</ol>", $a[1]);

    //$ret=iconv("utf-8","euc-kr",$b[0]); //euckr 에서 사용할경우

    $ret = $b[0];

    $c = explode("\n", $ret);

    $num = count($c);


    $output = Array();

    $objectCount = 0;

    for($i=0; $i<=$num; $i++)

    {

        //키워드, 상승, 하강 여부 알아옴

        preg_match_all('/<li[^>]+><a[^>]+title="(.*?)">(?:.*?)<span[^>]+>(.*?)<\/span>/i',

                $c[$i], $out, PREG_SET_ORDER);


        //키워드에 점수 여부를 알아옴

        preg_match_all('/<span[^>]+class="rk">(.*?)<\/span>/i', $c[$i], $out_point, PREG_SET_ORDER);


        if ( $out[0][1] ) { //키워드가 있을경우

            $output[$objectCount]->keyword = $out[0][1];

            $output[$objectCount]->updown = $out[0][2];


            if ( $out_point[0][1] ) $output[$objectCount]->point = $out_point[0][1];

            else $output[$objectCount]->point = 0;


        }

        $objectCount++;

    }

    return $output;

}


//사용법

    $a = getPopularKeyword();


    echo '<pre>';

    foreach ($a as $key => $val)

    {

        var_dump($val);

    }

    echo '</pre>';


?>