예전에 만든거 좀더 보안해서
그냥 추가적으로 작성한 내역 공유해 드립니다.
참고항목으로 `네이버 코드` 부분이 있는데
이 부분은 네이버 openAPI 사용시 코드를 발급하셔야 합니다.
1개의 코드에 보낼수 있는 쿼리양이 정해져있어서 그부분을 해결해보고자
코드 2~3개 를 추가발급받으신후 등록하면 무리없으실거에요.
그리고 저번에 정규식 부분에 대해
`\r\n` 로 한건 해당 입력부분안에 대한 내용물중에 , 부분도 있을 경우를 대비한겁니다.
참고로......허접해도....자비좀 부탁드려요..^^
<?
//################ MB- SKM - 쿠레이지쌩 ###################
Header("Content-type: text/xml; charset=UTF-8");
//Header("Content-type: text/html; charset=UTF-8");
$chart_cnt = 10;
switch($_GET["fs"]) {
case "daum" :
$fp = fopen("http://img.search.daum-img.net/jumpkeyword/tot.js","r");
while(!feof($fp)) {
$data=fread($fp,2048);
$text = iconv("CP949","UTF-8",$data);
$chart = load_Daum($chart, $text,"K","K"); // 타이틀
$chart = load_Daum($chart, $text,"S","S"); // 아이콘설정
$chart = load_Daum($chart, $text,"V","V"); // 등업
}
fclose($fp);
break;
default :
//##################################### 기본 naver
$chart = load_Naver("nexearch",10);
//##################################### 기본 naver
break;
}
//print_r($chart);
$xml = '<?xml version="1.0" encoding="UTF-8" ?>';
$xml .= '<root>';
for($i=0;$i<$chart_cnt;$i++) {
if(!empty($chart[$i]["K"])) {
switch($chart[$i]["S"]) {
case "n" : $chart_S="http://www.adget.co.kr/_global/_img/chart/new.png"; break;
case "+" : $chart_S="http://www.adget.co.kr/_global/_img/chart/up.png"; break;
case "-" : $chart_S="http://www.adget.co.kr/_global/_img/chart/down.png"; break;
default : $chart_S="http://www.adget.co.kr/_global/_img/chart/none.png"; break;
}
$xml .= "<chart>";
$xml .= " <K><![CDATA[".$chart[$i]["K"]."]]></K>";
$xml .= " <S><![CDATA[".$chart_S."]]></S>";
$xml .= " <V><![CDATA[".$chart[$i]["V"]."]]></V>";
$xml .= "</chart>";
}
}
$xml .= '</root>';
echo $xml;
//#################################################### 다음용
function load_Daum($chart, $value,$str,$avalue) {
preg_match_all("/{$str}:\"(.*?)\r\n/i",$value,$matches);
for($i=0;$i<sizeof($matches[0]);$i++) {
$value = $matches[0][$i];
$value = str_replace("{$str}:\"","",$value);
$value = str_replace("\"","",$value);
$value = str_replace(",","",$value);
$value = str_replace("\r\n","",$value);
$value = trim($value);
if($str=="S") {
switch($value) {
case "new" : $value="n"; break;
case "++" : $value="+"; break;
case "--" : $value="-"; break;
default : $value=""; break;
}
}
$chart[$i][$avalue] = $value;
}
return $chart;
}
//#################################################### 다음용
//#################################################### 네이버 API
function load_Naver($query,$cnt) {
$err = "";
$naver_key = array(
"네이버 코드1",
"네이버 코드2",
"네이버 코드3",
"네이버 코드4",
"네이버 코드5");
$key = array_rand($naver_key);
$xmlURL = "http://openapi.naver.com/search?key={$naver_key[$key]}&query={$query}&target=rank";
$xmlView = simplexml_load_file($xmlURL);
for($i=1;$i<=$cnt;$i++) {
$K = $xmlView->item->{"R{$i}"}->K;
$S = $xmlView->item->{"R{$i}"}->S;
$V = $xmlView->item->{"R{$i}"}->V;
switch($S) {
case "new" : $S="n"; break;
case "+" : $S="+"; break;
case "-" : $S="-"; break;
default : $S=""; break;
}
if(empty($K) || empty($S) || empty($V)) { $err = "Y"; break; }
else {
$chart[] = array(
"K" => $K,
"S" => $S,
"V" => $V,
);
}
}
if($err == "Y" ) $chart = load_Naver($query,$cnt);
return $chart;
}
/* load_Naver( A, B );
// A 입력값
nexearch : 통합검색
cafe : 카페검색
blog : 블로그 검색
dic : 사전검색
image : 이미지검색
kin : 지식iN검색
music : 음악검색
video : 동영상검색
webkr : 웹문서검색
site : 사이트검색
news : 뉴스검색
// B 입력값 ( 노출갯수 )
*/
//#################################################### 네이버 API
?>
영삼넷
Categories
Recent Posts
Recent Comments
Statistics
- Total Visitors:
- 410186
- Today:
- 6846317
- Yesterday:
- 9754777
IT강국 김영삼 블로그에 오신걸 진심으로 환영합니다.
©2002 영삼넷 // openkr
©2002 영삼넷 // openkr