네이버에서 제공하는 환율정보를 가져오는 함수
만들면서 정규식을 배워야겠다는 마음이 간절히 드네요 ㅋㅋ
[code]
# 네이버 자료에서 환율정보를 얻어온다.
function Ncurrency() {
# 데이터 호출
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://info.finance.naver.com/marketindex/exchangeList.nhn');
curl_setopt($ch, CURLOPT_POST, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$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])));
$Data[$akey]["미화환산율"] = str_replace(',', '', trim(strip_tags($td[7])));
}
return $Data;
}
$Data = Ncurrency();
[/code]
댓글 21개
간단하게 tr별로 돌려버리믄 ㅋㅋ
네이버도 외환은행에서 돈주고 사용하는것 같던데...
# 파싱
preg_match_all('`<tr.*?>(.*?)<\/[\s]*tr>`s', $res, $tr);
$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 = preg_replace('/ \(?100\)?/', '', trim($akey)); if(!$akey) continue;
원래는 일본만 그런줄알고 간단하게 짜놓은건데 나중에 다른 국가도 몇개 그런것을 확인해서 부랴부랴 수정하다보니 ㅎㅎ
아래무래 파싱은 자주하면 안좋다는 생각에 말씀하신 의견에 한표 드립니다!
검색엔진에 최강자 이죠..
개구리가 올챙이적 모른다고 전에 생각했었습니다..
중이 고기 맛을 알면.. 더 적으면..길어질거 깉아서 이만..^^
지금도 그 생각에는 변함이 없지요..(유저로서..)..지움..
보세요..
얼마나 비참하게 무너지고 한 순간에 꿈에 대한 추억을 ....................................
잡는 심정으로 달려 가고 s 그룹에게 살려 달라 하겟지만..
오버인지 모르겠지만 아직도 네이버에 줄 서는건 아닌거 같습니다..
네이버 창업자가 누구라고 알고 계시는지요..^^?
최근에 그(네이버) 직원들과 통화 해 보셨나요..^^
네이버랑은 페이 쪽때문에 하루에 두세번씩 통화하는데 자신이 맡지 않은건 무조건 전화를 돌리더라구요 ㅎㅎ(cs불만... ㅜ..ㅜ)
요기 한쪽에 대만환율좀 표시하고 싶었는데, 이거 활용하면 되나요?
$Data 안에 배열 값을 출력을 해야 하는데 ㅜㅜ
처럼 사용 하시면됩니다.
가능한 하루에 한번 저함수로 db에 저장하고 db에서 꺼내오는 식으로 사용하세요 ㅎㅎ
저는 시간 날때 마다 http://regexr.com/ 여기서 연습합니다
저도 거기서 노는데 ㅋㅋㅋ