iT邦幫忙

0

PHP-台銀匯率抓取

php

參考CURL及preg_match_all函數所寫的抓匯率,再請各位先進指教!!

<?php
// 設定URL網址
$url = 'https://rate.bot.com.tw/xrt?Lang=zh-TW';

// 建立CURL連線
$ch = curl_init();
 
// 設定擷取的URL網址
curl_setopt($ch, CURLOPT_URL, $url);
 
//強制轉為UTF-8
curl_setopt($ch,CURLOPT_HTTPHEADER, array("Content-Type: application/x-www-form-urlencoded; charset=utf-8"));
 
//將curl_exec()獲取的訊息以文件流的形式返回,而不是直接輸出。
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
 
//設定要傳的 變數A=值A & 變數B=值B (中間要用&符號串接)
$PostData = "a=abc&b=def";
 
//設定CURLOPT_POST 為 1或true,表示要用POST方式傳遞
curl_setopt($ch, CURLOPT_POST, 1);

//CURLOPT_POSTFIELDS 後面則是要傳接的POST資料。
curl_setopt($ch, CURLOPT_POSTFIELDS, $PostData);

$options = array(
    CURLOPT_SSL_VERIFYHOST => 0,
    CURLOPT_SSL_VERIFYPEER => 0,
);
curl_setopt_array($ch, $options);
 
// 執行
$temp=curl_exec($ch);

//去除換行及空白字元
$temp=str_replace(array("\r","\n","\t","\s"), '', $temp);   

//取得匯率時間
preg_match_all ('/<span class="time">(.*)<\/span>/U', $temp, $pat_array1); 
print_r($pat_array1[0]);
echo '<BR>';

//取得幣別
preg_match_all('/<div\s+class="visible-phone print_hide">(.*)<\/div>/U', $temp, $pat_array2); 
print_r($pat_array2[0]);
echo '<BR>';

//取得現金買入匯率
preg_match_all ('/<td data-table="本行現金買入" class="text-right display_none_print_show print_width">(.*)<\/td>/U', $temp, $pat_array3); 
print_r($pat_array3[0]);

//echo $temp;
// 關閉CURL連線
curl_close($ch);
?>

尚未有邦友留言

立即登入留言