게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
네이버 api연동하는 php 소스 봐주실수 있나요..?
게시물ID : computer_128378짧은주소 복사하기
작성자 : DonG
추천 : 0
조회수 : 1056회
댓글수 : 3개
등록시간 : 2013/11/18 14:48:51
/*
 * Rank API Example for NAVER OPENAPI
 * Author : Gyeong-Nam, Kim
 * Date : 2013.05.03
 * Copyright 2013 NHN Technology Services Corp. All rights Reserved.
 */
class RankApiManager {
 
 private $key = $key; // 사용자가 발급받은 오픈API 키
 private $searchUrl = "http://openapi.naver.com/search"; // 오픈API 호출URL
 private $query = "nexearch";
 private $target = "rank";
 /**
  * API 결과를 받아오기 위하여 오픈API 서버에 Request 를 하고 결과를 XML Object 로 반환하는 메소드
  * @return object
  */
  function wget($url){
 
}
 
  function query()
 {
  $url = sprintf("http://openapi.naver.com/search?query=nexearch&target=rank&key=$key");
  
  
  $info = parse_url($url);
  $host = $info["host"];
  $port = $info["port"];
  if($port == 0) $port = 80;
  $path = $info["path"];
  if($info["query"] != "") $path .="?".$info["query"];
  $out = "GET $path HTTP/1.0\r\nHost: $host\r\n\r\n";
  $fp = fsockopen($host,$port,$errno,$errstr,30);
  if(!$fp){
   echo "$errstr ($errno)
\n";
  }else{
   fputs($fp,$out);
   $start = false;
   $retVal = "";
   while(!feof($fp)){
    $tmp = fgets($fp,1024);
    if($start == true) $retVal .= $tmp;
    if($tmp == "\r\n") $start = true;
   }
   fclose($fp);
   //echo $retVal;
   return $retVal;
  }
  return $retVal;
 }
 /**
  * API의 결과는 Array 형태로 반환하는 사용자 커스터마이징 메소드
  * XML을 직접 parsing 하여 Array형태로 변환한다 
  */
 public function getRankData()
 {
  $xml = $this->query();
  
  $result = array();
  $rank = array();
  for($i = 1;$i <= 10; $i++){
   $rank['R'] = $i;
 
 
//이부분이 의문인데..
   $rank['K'] = (string)$xml->item->{"R{$i}"}->K;
   $rank['S'] = (string)$xml->item->{"R{$i}"}->S;
   $rank['V'] = (string)$xml->item->{"R{$i}"}->V;

   $result[] = $rank;
   
  }
 
//여기서부터는 제가 테스트한 부분입니다.
  $arrlength= count($result);
  //echo count($result);
  echo $xml;
  //for($x=0;$x<1;$x++) {
  // echo ("
");
 // print_r($result);
    //  echo ("
");
  // echo "
";
 // }
  return $result;
 }
 
}
$api = new RankApiManager();
// RankApiManager 객체의 getRankData를 호출하여 실시간 급상승 검색어 API 데이터를 가져 온다
$rankData = $api->getRankData();
?>
 
빨간 글씨로 쓰여진 부분이 의문인데 외부 xml 파싱이 안되서 simplexml_load_file 을 못쓰고..
어찌어찌 해서 외부 xml 파일을 내부적으로 만들어냈습니다.
그런데 빨간 글씨로 만들어진 부분을 보면 배열에 xml의 키값들을 넣게 되있는데
막상 배열을 출력해보면 비어있습니다.
뭐가 잘못된건지...
 
혹시 제가 설명한게 이해안되시면 댓글에 제가 다시 설명쓸게요
고수님들 봐주시고 조언을 좀 해주세요 ㅠ
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호