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

네이버환율정보를 가져오려는데 잘안되는데.... 채택완료

元이아빠 9년 전 조회 2,579

아래코드를 메인에 넣었습니다...

</p><pre class="brush:php;" style="overflow-x: scroll; color: rgb(72, 72, 72); line-height: 25.2072px;"># 네이버 자료에서 환율정보를 얻어온다.
function Ncurrency() {
 
	# 데이터 호출
	$ch = curl_init();
	curl_setopt($ch, CURLOPT_URL, '<a href="http://info.finance.naver.com/marketindex/exchangeList.nhn');" target="_blank" rel="noopener noreferrer">http://info.finance.naver.com/marketindex/exchangeList.nhn');</a>
	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;
}</pre><p>

그리고 

 $Data = Ncurrency();

했는데 아무것도 안나오네요?

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

답변 2개

채택된 답변
+20 포인트
그림자밟기

</p><p style="word-break: break-all; color: rgb(72, 72, 72); font-family: 돋움, Dotum, sans-serif; font-size: 14.004px; line-height: 25.2072px;"><div></p><p style="word-break: break-all; color: rgb(72, 72, 72); font-family: 돋움, Dotum, sans-serif; font-size: 14.004px; line-height: 25.2072px;"><?php</p><p style="word-break: break-all; color: rgb(72, 72, 72); font-family: 돋움, Dotum, sans-serif; font-size: 14.004px; line-height: 25.2072px;">$data = Ncurrency();</p><p style="word-break: break-all; color: rgb(72, 72, 72); font-family: 돋움, Dotum, sans-serif; font-size: 14.004px; line-height: 25.2072px;">print_r2($data);</p><p style="word-break: break-all; color: rgb(72, 72, 72); font-family: 돋움, Dotum, sans-serif; font-size: 14.004px; line-height: 25.2072px;"><span style="line-height: 25.2072px; font-size: 11pt;">?></span></p><p style="word-break: break-all; color: rgb(72, 72, 72); font-family: 돋움, Dotum, sans-serif; font-size: 14.004px; line-height: 25.2072px;"></div></p><p>

 

위 정보가 정상적으로 출력 된다면

$data가 배열로 넘어오기 때문에 foreach 구문을 통해서 출력하면 되겠습니다. 

로그인 후 평가할 수 있습니다

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

9년 전
변수 $res에서 값가져오는지부터

확인하세여 한줄한줄

값이 떨어지는지부터

확인하세여
로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

元이아빠
9년 전
무슨말씀이신지......당췌.....ㅠ.ㅠ
초보라서 죄송합니다....

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

답변을 작성하려면 로그인이 필요합니다.

로그인