NELER YENI?
Yukleniyor...

PHP ile Google'dan Döviz Kurları


PHP ile yazdığınız bir projede güncel kur bilgilerine ulaşmak isteyebilirsiniz. Bunu Google'nin servisiyle gerçekleştirebilmek çok kolay. Google bu bilgileri yanlış hatırlamıyorsam Citibank'tan alıyordu.

Aslında bu çevrime işlemlerini Google API kullanarak da yapabilirsiniz. Ben kendi yöntemimi yazacağım bu yöntemin performansı, API kullanmaya kıyasla biraz daha yavaş olabilir. TCMB kurları ile arasında biraz fark (-/+) oluyor ancak para birimleri yönünden daha zengin. İlk önce birbirlerine çevirebileceğimiz para birimlerine göz atalım:


BIRIM KODU - BIRIM ADI
AED - United Arab Emirates Dirham (AED)
AFN - Afghan Afghani (AFN)
ALL - Albanian Lek (ALL)
AMD - Armenian Dram (AMD)
ANG - Netherlands Antillean Guilder (ANG)
AOA - Angolan Kwanza (AOA)
ARS - Argentine Peso (ARS)
AUD - Australian Dollar (A$)
AWG - Aruban Florin (AWG)
AZN - Azerbaijani Manat (AZN)
BAM - Bosnia-Herzegovina Convertible Mark (BAM)
BBD - Barbadian Dollar (BBD)
BDT - Bangladeshi Taka (BDT)
BGN - Bulgarian Lev (BGN)
BHD - Bahraini Dinar (BHD)
BIF - Burundian Franc (BIF)
BMD - Bermudan Dollar (BMD)
BND - Brunei Dollar (BND)
BOB - Bolivian Boliviano (BOB)
BRL - Brazilian Real (R$)
BSD - Bahamian Dollar (BSD)
BTC - Bitcoin (฿)
BTN - Bhutanese Ngultrum (BTN)
BWP - Botswanan Pula (BWP)
BYR - Belarusian Ruble (BYR)
BZD - Belize Dollar (BZD)
CAD - Canadian Dollar (CA$)
CDF - Congolese Franc (CDF)
CHF - Swiss Franc (CHF)
CLF - Chilean Unit of Account (UF) (CLF)
CLP - Chilean Peso (CLP)
CNH - CNH (CNH)
CNY - Chinese Yuan (CN¥)
COP - Colombian Peso (COP)
CRC - Costa Rican Colón (CRC)
CUP - Cuban Peso (CUP)
CVE - Cape Verdean Escudo (CVE)
CZK - Czech Republic Koruna (CZK)
DEM - German Mark (DEM)
DJF - Djiboutian Franc (DJF)
DKK - Danish Krone (DKK)
DOP - Dominican Peso (DOP)
DZD - Algerian Dinar (DZD)
EGP - Egyptian Pound (EGP)
ERN - Eritrean Nakfa (ERN)
ETB - Ethiopian Birr (ETB)
EUR - Euro (€)
FIM - Finnish Markka (FIM)
FJD - Fijian Dollar (FJD)
FKP - Falkland Islands Pound (FKP)
FRF - French Franc (FRF)
GBP - British Pound (£)
GEL - Georgian Lari (GEL)
GHS - Ghanaian Cedi (GHS)
GIP - Gibraltar Pound (GIP)
GMD - Gambian Dalasi (GMD)
GNF - Guinean Franc (GNF)
GTQ - Guatemalan Quetzal (GTQ)
GYD - Guyanaese Dollar (GYD)
HKD - Hong Kong Dollar (HK$)
HNL - Honduran Lempira (HNL)
HRK - Croatian Kuna (HRK)
HTG - Haitian Gourde (HTG)
HUF - Hungarian Forint (HUF)
IDR - Indonesian Rupiah (IDR)
IEP - Irish Pound (IEP)
ILS - Israeli New Sheqel (₪)
INR - Indian Rupee (Rs.)
IQD - Iraqi Dinar (IQD)
IRR - Iranian Rial (IRR)
ISK - Icelandic Króna (ISK)
ITL - Italian Lira (ITL)
JMD - Jamaican Dollar (JMD)
JOD - Jordanian Dinar (JOD)
JPY - Japanese Yen (¥)
KES - Kenyan Shilling (KES)
KGS - Kyrgystani Som (KGS)
KHR - Cambodian Riel (KHR)
KMF - Comorian Franc (KMF)
KPW - North Korean Won (KPW)
KRW - South Korean Won (₩)
KWD - Kuwaiti Dinar (KWD)
KYD - Cayman Islands Dollar (KYD)
KZT - Kazakhstani Tenge (KZT)
LAK - Laotian Kip (LAK)
LBP - Lebanese Pound (LBP)
LKR - Sri Lankan Rupee (LKR)
LRD - Liberian Dollar (LRD)
LSL - Lesotho Loti (LSL)
LTL - Lithuanian Litas (LTL)
LVL - Latvian Lats (LVL)
LYD - Libyan Dinar (LYD)
MAD - Moroccan Dirham (MAD)
MDL - Moldovan Leu (MDL)
MGA - Malagasy Ariary (MGA)
MKD - Macedonian Denar (MKD)
MMK - Myanmar Kyat (MMK)
MNT - Mongolian Tugrik (MNT)
MOP - Macanese Pataca (MOP)
MRO - Mauritanian Ouguiya (MRO)
MUR - Mauritian Rupee (MUR)
MVR - Maldivian Rufiyaa (MVR)
MWK - Malawian Kwacha (MWK)
MXN - Mexican Peso (MX$)
MYR - Malaysian Ringgit (MYR)
MZN - Mozambican Metical (MZN)
NAD - Namibian Dollar (NAD)
NGN - Nigerian Naira (NGN)
NIO - Nicaraguan Córdoba (NIO)
NOK - Norwegian Krone (NOK)
NPR - Nepalese Rupee (NPR)
NZD - New Zealand Dollar (NZ$)
OMR - Omani Rial (OMR)
PAB - Panamanian Balboa (PAB)
PEN - Peruvian Nuevo Sol (PEN)
PGK - Papua New Guinean Kina (PGK)
PHP - Philippine Peso (Php)
PKG - PKG (PKG)
PKR - Pakistani Rupee (PKR)
PLN - Polish Zloty (PLN)
PYG - Paraguayan Guarani (PYG)
QAR - Qatari Rial (QAR)
RON - Romanian Leu (RON)
RSD - Serbian Dinar (RSD)
RUB - Russian Ruble (RUB)
RWF - Rwandan Franc (RWF)
SAR - Saudi Riyal (SAR)
SBD - Solomon Islands Dollar (SBD)
SCR - Seychellois Rupee (SCR)
SDG - Sudanese Pound (SDG)
SEK - Swedish Krona (SEK)
SGD - Singapore Dollar (SGD)
SHP - St. Helena Pound (SHP)
SKK - Slovak Koruna (SKK)
SLL - Sierra Leonean Leone (SLL)
SOS - Somali Shilling (SOS)
SRD - Surinamese Dollar (SRD)
STD - São Tomé & Príncipe Dobra (STD)
SVC - Salvadoran Colón (SVC)
SYP - Syrian Pound (SYP)
SZL - Swazi Lilangeni (SZL)
THB - Thai Baht (THB)
TJS - Tajikistani Somoni (TJS)
TMT - Turkmenistani Manat (TMT)
TND - Tunisian Dinar (TND)
TOP - Tongan Paʻanga (TOP)
TRY - Turkish Lira (TRY)
TTD - Trinidad & Tobago Dollar (TTD)
TWD - New Taiwan Dollar (NT$)
TZS - Tanzanian Shilling (TZS)
UAH - Ukrainian Hryvnia (UAH)
UGX - Ugandan Shilling (UGX)
USD - US Dollar ($)
UYU - Uruguayan Peso (UYU)
UZS - Uzbekistani Som (UZS)
VEF - Venezuelan Bolívar (VEF)
VND - Vietnamese Dong (₫)
VUV - Vanuatu Vatu (VUV)
WST - Samoan Tala (WST)
XAF - Central African CFA Franc (FCFA)
XCD - East Caribbean Dollar (EC$)
XDR - Special Drawing Rights (XDR)
XOF - West African CFA Franc (CFA)
XPF - CFP Franc (CFPF)
YER - Yemeni Rial (YER)
ZAR - South African Rand (ZAR)
ZMK - Zambian Kwacha (1968–2012) (ZMK)
ZMW - Zambian Kwacha (ZMW)
ZWL - Zimbabwean Dollar (2009) (ZWL)

Google'dan döviz kurlarını hesaplatabilmemiz için birim kodlarını kullanacağız. Kullanacağımız link şu şekildedir: http://www.google.com/finance/converter?a=1&from=EUR&to=TRY
İlk önce örnek kodu yazacağım ve daha sonra açıklamasını yapacağım.
01- $from = 'EUR';
02- $to = 'TRY';
03- $guntarih = date('d.m.Y H:i:s');
04- $amount = '1'
05- $string = $amount.'&from='.$from.'&to='.$to;
06- $google_url = 'http://www.google.com/finance/converter?a='.$string;
07- $result = file_get_contents($google_url);
08- $result = explode('<span class=bld>', $result);
09- $converted_amount = explode(' ', $result[1]);
10- $conversion = $converted_amount[0];
11- echo $conversion;
  1. İlk satır ile çevrilecek kurun birimini $from değişkenine tanımlıyorum. Ben Euro para biriminde çevrim yapacağım.
  2. Satır ile Türk Lirasına çevirmek için TRY birimini $to değişkenine tanımlıyorum.
  3. Satır sorgulamanın tarihini tutmak için o anki tarih/saat bilgisini $guntarih değişkenine tanımlıyorum
  4. Satır ile EUR para biriminin miktarını yazmış oluyorum. Ben 1 Euro'yu Türk Lirasına çevireceğim. Kullandığım değişken $amount.
  5. Linkin değişken kısımlarını $string değişkenine tanımlıyorum. Burada miktar, para birimi ve çevrilecek birim olmak üzere 3 adet değişken var
  6. $google_url değişkenine linkin geri kalanına yazıp nokta operatörü ile $string değerini birleştiriyorum.
  7. file_get_contents fonksiyonu ile url adresinde bulunan içeriği $result değişkenine tanımlıyorum.
  8. İlgili Google URL sayfasının kaynak kodlarını incelediğimizde çevrilen döviz bilgisi <span class=bld> tagından sonra geldiğinden dolayı bu taga kadar explode fonksiyonu ile bölüyorum.
  9. explode fonksiyonu istediğim kısmı bana $result[1] dizisi içinde veriyor bulunan değerden sonraki bilgiler arasında bir boşluk olduğundan boşukları ' ' (tırnaklar arasında) bölüyorum.
  10. son kullandığım explode kodu bana ulaşmak istediğimiz gerçek değeri $converted_amount[0] dizisi olarak veriyor bu değeride $conversion değişkenine tanımlıyorum.
  11. Satır ile de bu değeri ekrana yazdırıyorum.
Artık $conversion değerini istediğim şekilde kullanırım, buradaki değer 1 Euro'nun Türk Lirasındaki değeridir. Şuanda baktığım zaman bu değerin 3.2129 olduğunu görüyorum.

İsterseniz bu kodları bir döngü içinde kullanıp günlük sorgulamasını sağlayarak, tüm döviz birimlerini veritabanınıza da kaydedebilirsiniz. Böylece her çevrime işlemi için Google'yi sorgulamanıza gerek kalmaz. Günlük çekmeniz yeterli olacaktır gerisi zaten çarpma/bölme işlemi.

file_get_contents(); fonksiyonunu kullanabilmeniz için php.ini dosyanızda allow_url_fopen değerine izin verilmiş olması gereklidir. Kur çekmenin bir çok yöntemi olabilir bu sadece bir tanesi.

3 yorum: Yorumunuzu Yazın