OPENCART 3.0 後台執行超慢原因

———————————————–
#OPENCART 3.0 後台執行超慢原因
———————————————–
1.它用curl抓取了yahoo的關於匯率的數據,
D:\wamp\www\o06\admin\model\localisation\currency.php 這只有首頁 才會讀取

$curl = curl_init();
//就是這裡了,看到木有
curl_setopt($curl, CURLOPT_URL, ‘http://download.finance.yahoo.com/d/quotes.csv?s=’ . implode(‘,’, $currency_data) . ‘&f=sl1&e=.json’);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);

它用curl抓取了yahoo的關於匯率的數據,結合這2段代碼可以看出,其實它的功能就是打開這個頁面的時候自動更新數據庫中匯率數據。
到此問題找到原因了,那麼解決的方法總結一下:
可以關閉自動更新匯率(Dashboard>System>Setting>Your Store>edit>local>Auto Update Currency 選擇No)
系統管理=>商店管理.編輯=>本地化設定=>匯率自動更新
系統管理=>在地化管理=>幣別管理

 

———————————————–
詳細實驗
送出值是先抓SELECT * FROM `oc_currency` 的資料
———————————————–

Array
(
[0] => TWDCNY=X
[1] => CNYTWD=X
[2] => TWDHKD=X
[3] => HKDTWD=X
[4] => TWDGBP=X
[5] => GBPTWD=X
[6] => TWDUSD=X
[7] => USDTWD=X
[8] => TWDEUR=X
[9] => EURTWD=X
)
http://download.finance.yahoo.com/d/quotes.csv?s=&f=sl1&e=.json 目標 結果抓一個空值
http://download.finance.yahoo.com/d/quotes.csv?s=TWDCNY=X,CNYTWD=X,TWDHKD=X,HKDTWD=X,TWDGBP=X,GBPTWD=X,TWDUSD=X,USDTWD=X,TWDEUR=X,EURTWD=X&f=sl1&e=.json 正常抓資料
結論:慢的原因不是這個-這一天只會抓一次而且只在你登入後台首頁時抓
———————————————–
#使用Yahoo API 抓取即時匯率
http://myskilltree.blogspot.tw/2016/03/yahoo-api.html
您可以在 http://www.xe.com/iso4217.php 找到完整的 ISO 貨幣代碼及設定。
———————————————–
http://download.finance.yahoo.com/d/quotes.csv?e=.csv&f=c4l1&s=TWDUSD=x,TWDJPY=x 2總幣的兌換比例
http://download.finance.yahoo.com/d/quotes.csv?e=.json&f=c4l1&s=TWDUSD=x,TWDJPY=x

其中URL裡的f=c4l1是只取下兌換幣別(美金)的代碼與匯率
如果想取下更詳細的資料可以換成f=sl1d1t1,分別指定了代碼(含原始幣別跟對換幣別)、匯率、日期、時間這四個欄位

而s=TWDUSD=x ,其中TWD (新台幣) 為原始幣別 USD (美金)為兌換幣別,可以依需求自行更換,如果要查詢多筆資料則在後在後接續即可。

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *