테스트 사이트 - 개발 중인 베타 버전입니다

네이버 openapi 사용하여 실시간 인기검색어 보여주기

네이버의 openapi에서 키를 받으셔야 사용할수 있습니다.

궁금한 점은 http://openapi.naver.com/15.html 이곳에서 확인하세요.

결과가 간단하므로 복잡하게 처리하지 않고 간단하게 처리햇습니다.
php에서 fopen(), iconv()를 지원하는 환경에서만 가능합니다.

이하 소스
-----------------------------------------------------------------------------------------------------------

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=euc-kr'>
<title> 인기검색어 </title>
</head>

<body>
<center>
<table width=200 border=1 cellspacing=3>
<?php

$naver_openapi_key = '자신이 네이버에서 발급받은 키를 넣으세요';
$file = 'http://openapi.naver.com/search?key=' . $naver_openapi_key . '&query=nexearch&target=rank';
$fp = fopen($file, 'r') or die($file . ' not found');

$text = '';
while($data = fread($fp, 4096)){

$text .= iconv('UTF-8', 'EUC-KR', $data);
}

fclose($fp);

preg_match_all("'<K>([^<]*)</K>[^<]*<S>([^<]*)</S>[^<]*<V>([^<]*)</V>'s", $text, $matches);

if (is_array($matches[1]) && count($matches[1]) > 0){

foreach($matches[1] as $key => $val){

echo "<tr align='center'><td> " . $val . " </td><td> " . $matches[2][$key] . " </td><td> " . $matches[3][$key] . " </td></tr>";
}
}
else echo "<tr><td>검색결과 없음</td></tr>";

?>
</table>
<br><a href='http://openapi.naver.com/' target='_blank'>네이버 OPENAPI 사용</a>
</center>
</body>
</html>
-----------------------------------------------------------------------------------------------------------

utf-8 환경에서 사용할려면
<meta http-equiv='Content-Type' content='text/html; charset=euc-kr'> 을
<meta http-equiv='Content-Type' content='text/html; charset=utf-8'> 로 바꾸고

$text .= iconv('UTF-8', 'EUC-KR', $data); 을
$text .= $data; 로 바꾸시면 됩니다.

데모로 걸은 링크 사이트는 며칠후에는 안보일수 있습니다
http://search.dyd.cc/favorites_word.php<div class='small'>[이 게시물은 관리자님에 의해 2011-10-31 17:12:10 PHP & HTML에서 이동 됨]</div>

댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기

댓글 4개

좋은 팁들 감사드립니다.

혹시 검색어에 링크가 되게할 수는 없는지요.
네 물론 가능하지요
foreach 부분을 다음과 같이 고쳐 주시면 됩니다.

----------------------------------------------------------------------------------------------------------------------------------------------------
foreach($matches[1] as $key => $val){

$link = 'http://search.naver.com/search.naver?where=nexearch&query=' . urlencode($val);

echo "<tr align='center'><td> <a href='" . $link . "' target='_blank'>" . $val . "</a> </td><td> " . $matches[2][$key] . " </td><td> " . $matches[3][$key] . " </td></tr>";
}

-------------------------------------------------------------------------------------------------------------------------------------------------------
감사합니다. 바로 적용해주셨네요. 좋은 공부가 될 것 같습니다.
웹검색으로 바로가게 할려면요

위의
$link = 'http://search.naver.com/search.naver?where=nexearch&query=' . urlencode($val);

부분을
$link = 'http://web.search.naver.com/search.naver?where=web&query=' . urlencode($val);

이렇게 바꿔주기만 하면 됩니다.

게시글 목록

번호 제목
24900
24899
24898
24897
24896
24895
24894
24893
24892
24891
24890
24889
24888
24887
24886
11687
24885
24884
24883
24882
24881
24879
24878
24877
24875
24874
24873
24872
24871
11683
11662
11659
29136
11647
11644
11641
11634
11632
29135
11631
11628
24870
24869
24868
24867
24866
24865
24864
24863
24862
24861
24860
11627
24859
24858
24856
24855
24854
24853
24852
29130
11625
11622
11617
11604
11596
11591
11586
29128
11583
11579
11578
11574
11566
11565
11562
11561
29125
11558
11556
11533
11529
29118
11526
11519
29115
11518
11516
11515
11509
11508
29112
11496
29109
29106
11495
11488
11486
11483
11471