웹마스터 팁

http://search.dyd.cc/shop.php?q=%EA%B0%80%EC%A0%84&start=1&display=5네이버의 openapi에서 키를 받으셔야 사용할수 있습니다.

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

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

파일저장을 UTF-8 로 하여야만 에러가 나지 않습니다.

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

<?php

$q =  (!empty($_GET['q'])) ? $_GET['q'] : '';
$q_decode = (!empty($q)) ? stripslashes(urldecode($q)) : '';
$q_enocde = urlencode($q);

$start =  (!empty($_GET['start']) && is_numeric($_GET['start'])) ? $_GET['start'] : 1;
$display =  (!empty($_GET['display']) && is_numeric($_GET['display'])) ? $_GET['display'] : 5;

?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=UTF-8'>
<title> 쇼핑 검색 </title>
</head>

<body>
<center>
<form method='GET'>
<input type=text name='q' value='+ '<?=$q_decode?>'> <input type='submit' value='search'>

start <input type=text name='start' value='<?=$start?>' size=3>
display <input type=text name='display' value='<?=$display?>' size=3>
</form>
<table width=600 border=1 cellspacing=3>
<?php

if (!empty($q_decode)) {

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

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

    $text .= $data;
  }

  fclose($fp);

  preg_match_all("`<item>[^<]*<title>([^<]*)</title>[^<]*<link>([^<]*)</link>[^<]*(<image>([^<]*)</image>)?(<image/>)?[^<]*(<lprice>([^<]*)</lprice>)?(<lprice/>)?[^<]*(<hprice>([^<]*)</hprice>)?(<hprice/>)?[^<]*(<description>([^<]*)</description>)?(<description/>)?`s", $text, $matches);

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

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

      //title
      $title = str_replace(array("<", ">"), array("<", ">"), $val);
      
      //link
      $link = $matches[2][$key];
      
      //image
      if (empty($matches[4][$key])) $image = '정보없음';
      else $image = "<img src='" . $matches[4][$key] . "'>";

      //lprice
      if (empty($matches[7][$key])) $lprice = '정보없음';
      else $lprice = number_format($matches[7][$key]) . " 원";

      //hprice
      if (empty($matches[10][$key])) $hprice = '정보없음';
      else $hprice = number_format($matches[10][$key]) . " 원";

      //description
      if (empty($matches[13][$key])) $description = '정보없음';
      else $description = str_replace(array("<", ">"), array("<", ">"), $matches[13][$key]);

      echo "<tr align='center'>";
      echo "<td width='100'> <a href='" . $link . "' target='_blank'>" .  $title . "</a> </td>";
      echo "<td width='180'>" . $image . "</td>";
      echo "<td width='100'>" . $lprice . "<br>" . $hprice . "</td>";
      echo "<td>" . $description . "</td>";
      echo "</tr>";
    }
  }
  else echo "<tr><td>검색결과 없음</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 환경에서만 사용가능합니다.

데모로 걸은 링크 사이트는 며칠후에는 안보일수 있습니다
http://search.dyd.cc/shop.php?q=%EA%B0%80%EC%A0%84&start=1&display=5