XML네이버뉴스 긇어오기(영구) Utf-8 ->Euc-kr 변환 > 그누4 팁자료실

그누4 팁자료실

그누보드4와 관련된 팁을 여러분들과 함께 공유하세요.
나누면 즐거움이 커집니다.

XML네이버뉴스 긇어오기(영구) Utf-8 ->Euc-kr 변환 정보

XML네이버뉴스 긇어오기(영구) Utf-8 ->Euc-kr 변환

본문

PHP 버전 5이상에서 작동하는 것으로알고 있습니다.

네이버openAPI가 아니구요.
네이버뉴스 검색하면 RSS가 만들어지는데 XML문서를 뽑아서 출력합니다.

검색어만 바꾸면 다양하게 할수 있어요
네이버xml이 UTF-8환경이라 euc-kr에서 한글이 안들어가서 euc-kr로 변환 하는것까지넣었습니다. 왜냐하면 euc-kr이 짱이기때문입니다.

저작권위반도 아니니 마음놓고 쓰셔두됩니다.

테스트링크
----------------------------------------------
http://58.146.212.151/news.php?sidemenu=news

----------------------------------------------
테스트 개인섭이라 접속이 안될수도있떠염

<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
//euckr로 변환
function change_to_utf($utfStr) {
  if (iconv("UTF-8","UTF-8",$utfStr) == $utfStr) {
    return $utfStr;
  }
  else {
    return iconv("EUC-KR","UTF-8",$utfStr);
  }
}
# UTF => EUC-KR로 변환
function iconv_to_euc_kr($get_data) {
  $work_unit = 50;

  $init_size = strlen($get_data);

  $result_data = "";

  $count = 0;

  for ( $i = 0 ; $i < $init_size ; $i++ ) {
    $cur_char = substr($get_data,$i,1);

    $t = ord($cur_char);
    if ( $t == 9 || $t == 10 || (32 <= $t && $t <= 126) ) {
      $tn = 1;
    }
    else if ( 194 <= $t && $t <= 223 ) {
      $tn = 2;
    }
    else if ( 224 <= $t && $t < 239 ) {
      $tn = 3;
    }
    else if ( 240 <= $t && $t <= 247 ) {
      $tn = 4;
    }
    else if ( 248 <= $t && $t <= 251 ) {
      $tn = 5;
    }
    else if ( $t == 252 || $t == 253 ) {
      $tn = 6;
    }
    else {
      $tn = 1;
    }

    if ( $work_unit < $tn ) {
      break;
    }

    if ( $count + $tn > $work_unit ) {
      $temp_data = iconv("utf-8","euc-kr",$work_string);
      $result_data .= $temp_data;

      $work_string = "";
      $i--;
      $count = 0;
    }
    else {
      for ( $j = 0 ; $j < $tn ; $j++ ) {
        $work_string .= $cur_char;
        $i++;
        $count++;
        $cur_char = substr($get_data,$i,1);
      }
      $i--;
    }
  }

  if ( $work_string ) {
    $temp_data = iconv("utf-8","euc-kr",$work_string);
    $result_data .= $temp_data;
  }

  return $result_data;
}

 


//$query = change_to_utf($query);
$test = change_to_utf($test);

if(!$start||$start<1)$start=1;
$rss = file_get_contents("http://newssearch.naver.com/search.naver?where=rss&query=스타크래프트2&qt=&start=$start&pd=-1&ds=1997-01-01&de=2008-02-23&news=&category=&field=-1&sort=0&photo=-1&sim=0&title=-1&ntype=0&ctype=0&xc=&h=0&cat=");

$xml = new SimpleXMLElement($rss);

 


echo"<table width=100% cellspacing=4>";

$i=0;
foreach($xml->channel[0]->item as $item)
{  
 if($i>= 10)break;
 //uft -> euckr 변환
 $item_title=cut_str(iconv_to_euc_kr($item->title),56);
 $item_title=str_replace("<b>","",$item_title);
 $item_title=str_replace("</b>","",$item_title);

 $item_description=iconv_to_euc_kr($item->description);

 $author=iconv_to_euc_kr($item->author);

 echo "<tr><td height=10><a href='".$item->link."'target=_blank>".$item_title."</a></td></tr> ";   
 //echo $item_description;
 //echo "<br><br>";
 $i++;
}

?>
</table>

추천
1
  • 복사

댓글 2개

© SIRSOFT
현재 페이지 제일 처음으로