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

네이버 환율 파싱

· 7년 전 · 6410 · 4

네이버 환율 파싱 소스를 https://sir.kr/cm_free/1350194 에서 참고하여 작성하여 웹호스팅(카페24 이용 중)에 업로드 하였을 때는 환율정보가 잘 나옵니다...그런데 내부서버(오토셋 10.7.2)로 업로드하면 Warning: Illegal string offset 'USD' in 파일주소 on line 59 등의 에러가 발생합니다.

아마 PHP버젼이 달라서 인 듯합니다. (카페24는 PHP 5.3, 오토셋은 PHP 7.2)

 

이 경우 다음과 같이 변경하여 적용하니 이상없이 잘 작동되네요....

참고하시기 바랍니다. (제 질문에 답변주신 슈와이님께 감사드립니다..)

 

<?

function Ncurrency() { 
 # 데이터 호출
     $url = 'https://finance.naver.com/marketindex/exchangeList.nhn';
     $ch = curl_init();
     curl_setopt($ch, CURLOPT_URL, $url);
     curl_setopt($ch, CURLOPT_POST, false);
     curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
     curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
     $response = curl_exec($ch);
     curl_close($ch);
     $res = iconv('euc-kr', 'UTF-8', $response); if(!$response) return 'false';
 
     # 파싱
     preg_match("/<tbody.*?>.*?<\/[\s]*tbody>/s", $res, $tbody); if(!is_array($tbody)) return 'false';
     preg_match_all('#<tr.*?>(.*?)<\/[\s]*tr>#s', $tbody[0], $tr); if(!is_array($tr)) return 'false';
 
     $Data = array();
     foreach($tr[0] as $k=>$v) {
 
         unset($td, $akey);
         preg_match_all('#<td.*?>(.*?)<\/td>#s', $v, $td);
         $td = $td[0];
         $akey = preg_replace('/([\xEA-\xED][\x80-\xBF]{2})+/', '', strip_tags($td[0]));
         $akey = trim(str_replace('JPY (100)', 'JPY', $akey));
         $akey = trim(str_replace('100', '', $akey)); if(!$akey) return 'false';
         $Data[$akey]['통화명'] = trim(strip_tags($td[0]));
         $Data[$akey]['매매기준율'] = str_replace(',', '', trim(strip_tags($td[1])));
         $Data[$akey]['현찰살때'] = str_replace(',', '', trim(strip_tags($td[2])));
         $Data[$akey]['현찰팔때'] = str_replace(',', '', trim(strip_tags($td[3])));
         $Data[$akey]['송금보낼때'] = str_replace(',', '', trim(strip_tags($td[4])));
         $Data[$akey]['송금받을때'] = str_replace(',', '', trim(strip_tags($td[5])));
         $Data[$akey]['미화환산율'] = str_replace(',', '', trim(strip_tags($td[6])));
     }
 
     return $Data;
 }
 $Data = Ncurrency();

?>

댓글 작성

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

로그인하기

댓글 4개

네이버 올라와서 문득 실시간 검색어 파싱이 생각나네요..ㅜㅜ 예전엔 잘댓는데..지금은 안대서
좋은정보 감사합니다
좋은 정보 감사합니다. 덕분에 환율 정보 표시할수 있게 되었습니다.
감사합니다

게시글 목록

번호 제목
24318
24317
24315
24309
24294
24293
24277
24262
24260
24253
24251
24236
24233
24228
24226
24221
24214
24203
24201
24199
24196
24195
24194
24192
24191
24187
24185
24183
24172
24168