일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 리플리케이션 오류
- 외래키
- php-fpm
- strtotime
- ssmtp
- 날짜계산
- 중독 게임
- mongodb
- 쁘띠프랑스
- 재귀쿼리
- 뒤로 가기
- 워드프레스한글팩
- 태권v
- rsync
- node 이미지 저장
- xcache
- 앞으로 가기
- security.limit_extensions
- simplexml_load_filesimplexml
- quota
- 훼인
- 특정 패키지 업데이트 중지 / 해제
- no key alg
- 이미지주소추출
- node.js
- 태권브이
- MySQL
- php
- set foreign_key
- openfire
- Today
- Total
일상 기록 창고
외환은행 환율 정보 파싱 본문
http://fx.keb.co.kr/FER1101C.web 에서 정보 가져와서 파싱....
$curl = curl_init(); curl_setopt( $curl, CURLOPT_URL, 'http://fx.keb.co.kr/FER1101C.web' );
curl_setopt( $curl, CURLOPT_SSL_VERIFYPEER, 1); curl_setopt( $curl, CURLOPT_BINARYTRANSFER, 1); curl_setopt( $curl, CURLOPT_RETURNTRANSFER, 1); curl_setopt( $curl, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt( $curl, CURLOPT_SSL_VERIFYHOST, 0); curl_setopt( $curl, CURLOPT_HEADER, 0); curl_setopt( $curl, CURLOPT_FOLLOWLOCATION, 1); curl_setopt( $curl, CURLOPT_RETURNTRANSFER, 1 ); $gData = curl_exec( $curl ); curl_close( $curl );
$YmgReg = '~<dd [^>]*.\'regdt\'>(.*?)</dd>~s'; preg_match_all( $YmgReg, $gData, $match, PREG_PATTERN_ORDER ); $dtYmd = $match[1][0];
// His 가져오기 $TimeReg = '~<dd [^>]*.\'dispTime\'>(.*?)</dd>~s'; preg_match_all( $TimeReg, $gData, $match, PREG_PATTERN_ORDER ); $dtHis = $match[1][0];
// 날짜 조합 $dtStartDate = str_replace('-', '', $dtYmd).str_replace(':', '', substr($dtHis, 0, 5));
$reg = '~<div[^>]*."gridPosition">(.*?)</div>~s'; preg_match_all( $reg, $gData, $matches, PREG_PATTERN_ORDER );
$aResult = Array();
if( $matches[1] ) { $cReg = '~<td[^>]*>(.*?)</td>~s'; preg_match_all( $cReg, $matches[1][0], $gContent, PREG_PATTERN_ORDER );
if( $gContent[1] ) { $nCount = COUNT( $gContent[1] );
for($i=0; $i<($nCount/12); $i++) { $nTmpNo = $i < 1 ? 0 : $i*12; $tNation = str_replace( ' ', '', str_replace( ' ', '', trim( strip_tags( $gContent[1][ $nTmpNo ] ) ) ) ); $tNation = str_replace( '100', '', $tNation ); $tNationCode = substr( $tNation, -3 ); $tBasicRate = str_replace( ' ', '', str_replace( ' ', '', trim( strip_tags( $gContent[1][ $nTmpNo+9 ] ) ) ) ); $tUsdRate = str_replace( ' ', '', str_replace( ' ', '', trim( strip_tags( $gContent[1][ $nTmpNo+11 ] ) ) ) ); $aResult[$i] = Array( 'EXCHANGE_DATE' => $dtStartDate, 'MARKET_NAME' => iconv('EUC-KR', 'UTF-8', str_replace( $tNationCode, '', $tNation )), 'MARKET_CODE' => $tNationCode, 'CURRENCY_NAME' => $tNationCode, 'BASIC_RATE' => $tBasicRate, 'USD_RATE' => $tUsdRate ); } } } |
뭐 html 소스가 바뀌면 다시 해야 겠지만... 이번것도 바뀌어서 다시한거긴 하지만... 필요한 정보가 저기에 있으니.. 어쩔수 없다.
외환은행 말고도 제공하는 곳이 있긴 하지만.. 항상 뭐가 하나 부족
'프로그래밍 > PHP' 카테고리의 다른 글
초를 일,시, 분 추출하기... (0) | 2017.08.11 |
---|---|
Laravel 프레임워크 설치 오류.. (0) | 2015.03.31 |
ip 정보를 통한 위치정보 가져오기 (0) | 2014.07.17 |
PHPExcel 사용시 숫자형 데이터 표기 제대로 나오게 하기. (0) | 2014.05.27 |
sudo 사용 시 추가 했던 내용 (0) | 2014.03.03 |