개발팁

0 857 0

네이버 환율 파싱

by 개발자
네이버 환율 파싱 소스를  에서 참고하여 작성하여 웹호스팅(카페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();



?>



읽어주셔서 감사합니다.


등록자 인끼 내용

고도몰 추가 빌드 출력방식 omg 컨트롤러경로 : /module/Controller/Front/Goods/GoodsViewController.php <pre class="line-numbers&…
고도몰 추가빌드 POST갑 DB에 입력방식 omg 파일경로 : /module/Component/Goods/GoodsAdmin.php <pre class="line-numbers"><code cl…
PHP 웹페이지 파싱 클래스 (웹페이지 긁… omg 웹페이지 소스를 파싱하는 클래스입니다. url과 정규식을 입력하면 파싱결과를 뱉어줍니다. curl을 사용하였기 때문에 fopen과 달리 PHP설정이 all…

Comments (0)

인기내용

고도몰 추가 빌드 출력방식 omg 컨트롤러경로 : /module/Controller/Front/Goods/GoodsViewController.php <pre class="line-numbers&…
고도몰 추가빌드 POST갑 DB에 입력방식 omg 파일경로 : /module/Component/Goods/GoodsAdmin.php <pre class="line-numbers"><code cl…

사진작품

Log in
Register