2016-06-21 29 views
1

我正在嘗試獲取我的訪問者的調用代碼和國家/地區名稱。什麼更有效率?連接到DB或在數組中有幾百行?

以前,我曾到數據庫的連接,以獲得符合我們從CloudFlare的得到了一個調用的代碼和國家名稱,使用

$_SERVER["HTTP_CF_IPCOUNTRY"]; 

$country_code=$_SERVER["HTTP_CF_IPCOUNTRY"]; 
$stmt = $pdo->query('SELECT short_name, calling_code from country WHERE iso2 LIKE "'.$country_code.'"'); 
$country = $stmt->fetch(); 

然而,當交通變得沉重,有許多連接到數據庫可能會有問題。所以我定義這個數組:

$countries = array(); 
$countries['AF'] = array("code"=>"AF","short_name"=>"Afghanistan","calling_code"=>"93"); 
$countries['AL'] = array("code"=>"AL","short_name"=>"Albania","calling_code"=>"355"); 
$countries['DZ'] = array("code"=>"DZ","short_name"=>"Algeria","calling_code"=>"213"); 
$countries['AS'] = array("code"=>"AS","short_name"=>"American Samoa","calling_code"=>"1"); 
$countries['AD'] = array("code"=>"AD","short_name"=>"Andorra","calling_code"=>"376"); 
$countries['AO'] = array("code"=>"AO","short_name"=>"Angola","calling_code"=>"244"); 
$countries['AI'] = array("code"=>"AI","short_name"=>"Anguilla","calling_code"=>"1"); 
$countries['AG'] = array("code"=>"AG","short_name"=>"Antigua","calling_code"=>"1"); 
$countries['AR'] = array("code"=>"AR","short_name"=>"Argentina","calling_code"=>"54"); 
$countries['AM'] = array("code"=>"AM","short_name"=>"Armenia","calling_code"=>"374"); 
$countries['AW'] = array("code"=>"AW","short_name"=>"Aruba","calling_code"=>"297"); 
$countries['AU'] = array("code"=>"AU","short_name"=>"Australia","calling_code"=>"61"); 
$countries['AT'] = array("code"=>"AT","short_name"=>"Austria","calling_code"=>"43"); 
$countries['AZ'] = array("code"=>"AZ","short_name"=>"Azerbaijan","calling_code"=>"994"); 
$countries['BH'] = array("code"=>"BH","short_name"=>"Bahrain","calling_code"=>"973"); 
$countries['BD'] = array("code"=>"BD","short_name"=>"Bangladesh","calling_code"=>"880"); 
$countries['BB'] = array("code"=>"BB","short_name"=>"Barbados","calling_code"=>"1"); 
$countries['BY'] = array("code"=>"BY","short_name"=>"Belarus","calling_code"=>"375"); 
$countries['BE'] = array("code"=>"BE","short_name"=>"Belgium","calling_code"=>"32"); 
$countries['BZ'] = array("code"=>"BZ","short_name"=>"Belize","calling_code"=>"501"); 
$countries['BJ'] = array("code"=>"BJ","short_name"=>"Benin","calling_code"=>"229"); 
$countries['BM'] = array("code"=>"BM","short_name"=>"Bermuda","calling_code"=>"1"); 
$countries['BT'] = array("code"=>"BT","short_name"=>"Bhutan","calling_code"=>"975"); 
$countries['BO'] = array("code"=>"BO","short_name"=>"Bolivia","calling_code"=>"591"); 
$countries['BA'] = array("code"=>"BA","short_name"=>"Bosnia and Herzegovina","calling_code"=>"387"); 
$countries['BW'] = array("code"=>"BW","short_name"=>"Botswana","calling_code"=>"267"); 
$countries['BR'] = array("code"=>"BR","short_name"=>"Brazil","calling_code"=>"55"); 
$countries['IO'] = array("code"=>"IO","short_name"=>"British Indian Ocean Territory","calling_code"=>"246"); 
$countries['VG'] = array("code"=>"VG","short_name"=>"British Virgin Islands","calling_code"=>"1"); 
$countries['BN'] = array("code"=>"BN","short_name"=>"Brunei","calling_code"=>"673"); 
$countries['BG'] = array("code"=>"BG","short_name"=>"Bulgaria","calling_code"=>"359"); 
$countries['BF'] = array("code"=>"BF","short_name"=>"Burkina Faso","calling_code"=>"226"); 
$countries['MM'] = array("code"=>"MM","short_name"=>"Burma Myanmar" ,"calling_code"=>"95"); 
$countries['BI'] = array("code"=>"BI","short_name"=>"Burundi","calling_code"=>"257"); 
$countries['KH'] = array("code"=>"KH","short_name"=>"Cambodia","calling_code"=>"855"); 
$countries['CM'] = array("code"=>"CM","short_name"=>"Cameroon","calling_code"=>"237"); 
$countries['CA'] = array("code"=>"CA","short_name"=>"Canada","calling_code"=>"1"); 
$countries['CV'] = array("code"=>"CV","short_name"=>"Cape Verde","calling_code"=>"238"); 
$countries['KY'] = array("code"=>"KY","short_name"=>"Cayman Islands","calling_code"=>"1"); 
$countries['CF'] = array("code"=>"CF","short_name"=>"Central African Republic","calling_code"=>"236"); 
$countries['TD'] = array("code"=>"TD","short_name"=>"Chad","calling_code"=>"235"); 
$countries['CL'] = array("code"=>"CL","short_name"=>"Chile","calling_code"=>"56"); 
$countries['CN'] = array("code"=>"CN","short_name"=>"China","calling_code"=>"86"); 
$countries['CO'] = array("code"=>"CO","short_name"=>"Colombia","calling_code"=>"57"); 
$countries['KM'] = array("code"=>"KM","short_name"=>"Comoros","calling_code"=>"269"); 
$countries['CK'] = array("code"=>"CK","short_name"=>"Cook Islands","calling_code"=>"682"); 
$countries['CR'] = array("code"=>"CR","short_name"=>"Costa Rica","calling_code"=>"506"); 
$countries['CI'] = array("code"=>"CI","short_name"=>"Côte d'Ivoire" ,"calling_code"=>"225"); 
$countries['HR'] = array("code"=>"HR","short_name"=>"Croatia","calling_code"=>"385"); 
$countries['CU'] = array("code"=>"CU","short_name"=>"Cuba","calling_code"=>"53"); 
$countries['CY'] = array("code"=>"CY","short_name"=>"Cyprus","calling_code"=>"357"); 
$countries['CZ'] = array("code"=>"CZ","short_name"=>"Czech Republic","calling_code"=>"420"); 
$countries['CD'] = array("code"=>"CD","short_name"=>"Democratic Republic of Congo","calling_code"=>"243"); 
$countries['DK'] = array("code"=>"DK","short_name"=>"Denmark","calling_code"=>"45"); 
$countries['DJ'] = array("code"=>"DJ","short_name"=>"Djibouti","calling_code"=>"253"); 
$countries['DM'] = array("code"=>"DM","short_name"=>"Dominica","calling_code"=>"1"); 
$countries['DO'] = array("code"=>"DO","short_name"=>"Dominican Republic","calling_code"=>"1"); 
$countries['EC'] = array("code"=>"EC","short_name"=>"Ecuador","calling_code"=>"593"); 
$countries['EG'] = array("code"=>"EG","short_name"=>"Egypt","calling_code"=>"20"); 
$countries['SV'] = array("code"=>"SV","short_name"=>"El Salvador","calling_code"=>"503"); 
$countries['GQ'] = array("code"=>"GQ","short_name"=>"Equatorial Guinea","calling_code"=>"240"); 
$countries['ER'] = array("code"=>"ER","short_name"=>"Eritrea","calling_code"=>"291"); 
$countries['EE'] = array("code"=>"EE","short_name"=>"Estonia","calling_code"=>"372"); 
$countries['ET'] = array("code"=>"ET","short_name"=>"Ethiopia","calling_code"=>"251"); 
$countries['FK'] = array("code"=>"FK","short_name"=>"Falkland Islands","calling_code"=>"500"); 
$countries['FO'] = array("code"=>"FO","short_name"=>"Faroe Islands","calling_code"=>"298"); 
$countries['FM'] = array("code"=>"FM","short_name"=>"Federated States of Micronesia","calling_code"=>"691"); 
$countries['FJ'] = array("code"=>"FJ","short_name"=>"Fiji","calling_code"=>"679"); 
$countries['FI'] = array("code"=>"FI","short_name"=>"Finland","calling_code"=>"358"); 
$countries['FR'] = array("code"=>"FR","short_name"=>"France","calling_code"=>"33"); 
$countries['GF'] = array("code"=>"GF","short_name"=>"French Guiana","calling_code"=>"594"); 
$countries['PF'] = array("code"=>"PF","short_name"=>"French Polynesia","calling_code"=>"689"); 
$countries['GA'] = array("code"=>"GA","short_name"=>"Gabon","calling_code"=>"241"); 
$countries['GE'] = array("code"=>"GE","short_name"=>"Georgia","calling_code"=>"995"); 
$countries['DE'] = array("code"=>"DE","short_name"=>"Germany","calling_code"=>"49"); 
$countries['GH'] = array("code"=>"GH","short_name"=>"Ghana","calling_code"=>"233"); 
$countries['GI'] = array("code"=>"GI","short_name"=>"Gibraltar","calling_code"=>"350"); 
$countries['GR'] = array("code"=>"GR","short_name"=>"Greece","calling_code"=>"30"); 
$countries['GL'] = array("code"=>"GL","short_name"=>"Greenland","calling_code"=>"299"); 
$countries['GD'] = array("code"=>"GD","short_name"=>"Grenada","calling_code"=>"1"); 
$countries['GP'] = array("code"=>"GP","short_name"=>"Guadeloupe","calling_code"=>"590"); 
$countries['GU'] = array("code"=>"GU","short_name"=>"Guam","calling_code"=>"1"); 
$countries['GT'] = array("code"=>"GT","short_name"=>"Guatemala","calling_code"=>"502"); 
$countries['GN'] = array("code"=>"GN","short_name"=>"Guinea","calling_code"=>"224"); 
$countries['GW'] = array("code"=>"GW","short_name"=>"Guinea-Bissau","calling_code"=>"245"); 
$countries['GY'] = array("code"=>"GY","short_name"=>"Guyana","calling_code"=>"592"); 
$countries['HT'] = array("code"=>"HT","short_name"=>"Haiti","calling_code"=>"509"); 
$countries['HN'] = array("code"=>"HN","short_name"=>"Honduras","calling_code"=>"504"); 
$countries['HK'] = array("code"=>"HK","short_name"=>"Hong Kong","calling_code"=>"852"); 
$countries['HU'] = array("code"=>"HU","short_name"=>"Hungary","calling_code"=>"36"); 
$countries['IS'] = array("code"=>"IS","short_name"=>"Iceland","calling_code"=>"354"); 
$countries['IN'] = array("code"=>"IN","short_name"=>"India","calling_code"=>"91"); 
$countries['ID'] = array("code"=>"ID","short_name"=>"Indonesia","calling_code"=>"62"); 
$countries['IR'] = array("code"=>"IR","short_name"=>"Iran","calling_code"=>"98"); 
$countries['IQ'] = array("code"=>"IQ","short_name"=>"Iraq","calling_code"=>"964"); 
$countries['IE'] = array("code"=>"IE","short_name"=>"Ireland","calling_code"=>"353"); 
$countries['IL'] = array("code"=>"IL","short_name"=>"Israel","calling_code"=>"972"); 
$countries['IT'] = array("code"=>"IT","short_name"=>"Italy","calling_code"=>"39"); 
$countries['JM'] = array("code"=>"JM","short_name"=>"Jamaica","calling_code"=>"1"); 
$countries['JP'] = array("code"=>"JP","short_name"=>"Japan","calling_code"=>"81"); 
$countries['JO'] = array("code"=>"JO","short_name"=>"Jordan","calling_code"=>"962"); 
$countries['KZ'] = array("code"=>"KZ","short_name"=>"Kazakhstan","calling_code"=>"7"); 
$countries['KE'] = array("code"=>"KE","short_name"=>"Kenya","calling_code"=>"254"); 
$countries['KI'] = array("code"=>"KI","short_name"=>"Kiribati","calling_code"=>"686"); 
$countries['XK'] = array("code"=>"XK","short_name"=>"Kosovo","calling_code"=>"381"); 
$countries['KW'] = array("code"=>"KW","short_name"=>"Kuwait","calling_code"=>"965"); 
$countries['KG'] = array("code"=>"KG","short_name"=>"Kyrgyzstan","calling_code"=>"996"); 
$countries['LA'] = array("code"=>"LA","short_name"=>"Laos","calling_code"=>"856"); 
$countries['LV'] = array("code"=>"LV","short_name"=>"Latvia","calling_code"=>"371"); 
$countries['LB'] = array("code"=>"LB","short_name"=>"Lebanon","calling_code"=>"961"); 
$countries['LS'] = array("code"=>"LS","short_name"=>"Lesotho","calling_code"=>"266"); 
$countries['LR'] = array("code"=>"LR","short_name"=>"Liberia","calling_code"=>"231"); 
$countries['LY'] = array("code"=>"LY","short_name"=>"Libya","calling_code"=>"218"); 
$countries['LI'] = array("code"=>"LI","short_name"=>"Liechtenstein","calling_code"=>"423"); 
$countries['LT'] = array("code"=>"LT","short_name"=>"Lithuania","calling_code"=>"370"); 
$countries['LU'] = array("code"=>"LU","short_name"=>"Luxembourg","calling_code"=>"352"); 
$countries['MO'] = array("code"=>"MO","short_name"=>"Macau","calling_code"=>"853"); 
$countries['MK'] = array("code"=>"MK","short_name"=>"Macedonia","calling_code"=>"389"); 
$countries['MG'] = array("code"=>"MG","short_name"=>"Madagascar","calling_code"=>"261"); 
$countries['MW'] = array("code"=>"MW","short_name"=>"Malawi","calling_code"=>"265"); 
$countries['MY'] = array("code"=>"MY","short_name"=>"Malaysia","calling_code"=>"60"); 
$countries['MV'] = array("code"=>"MV","short_name"=>"Maldives","calling_code"=>"960"); 
$countries['ML'] = array("code"=>"ML","short_name"=>"Mali","calling_code"=>"223"); 
$countries['MT'] = array("code"=>"MT","short_name"=>"Malta","calling_code"=>"356"); 
$countries['MH'] = array("code"=>"MH","short_name"=>"Marshall Islands","calling_code"=>"692"); 
$countries['MQ'] = array("code"=>"MQ","short_name"=>"Martinique","calling_code"=>"596"); 
$countries['MR'] = array("code"=>"MR","short_name"=>"Mauritania","calling_code"=>"222"); 
$countries['MU'] = array("code"=>"MU","short_name"=>"Mauritius","calling_code"=>"230"); 
$countries['YT'] = array("code"=>"YT","short_name"=>"Mayotte","calling_code"=>"262"); 
$countries['MX'] = array("code"=>"MX","short_name"=>"Mexico","calling_code"=>"52"); 
$countries['MD'] = array("code"=>"MD","short_name"=>"Moldova","calling_code"=>"373"); 
$countries['MC'] = array("code"=>"MC","short_name"=>"Monaco","calling_code"=>"377"); 
$countries['MN'] = array("code"=>"MN","short_name"=>"Mongolia","calling_code"=>"976"); 
$countries['ME'] = array("code"=>"ME","short_name"=>"Montenegro","calling_code"=>"382"); 
$countries['MS'] = array("code"=>"MS","short_name"=>"Montserrat","calling_code"=>"1"); 
$countries['MA'] = array("code"=>"MA","short_name"=>"Morocco","calling_code"=>"212"); 
$countries['MZ'] = array("code"=>"MZ","short_name"=>"Mozambique","calling_code"=>"258"); 
$countries['NA'] = array("code"=>"NA","short_name"=>"Namibia","calling_code"=>"264"); 
$countries['NR'] = array("code"=>"NR","short_name"=>"Nauru","calling_code"=>"674"); 
$countries['NP'] = array("code"=>"NP","short_name"=>"Nepal","calling_code"=>"977"); 
$countries['NL'] = array("code"=>"NL","short_name"=>"Netherlands","calling_code"=>"31"); 
$countries['AN'] = array("code"=>"AN","short_name"=>"Netherlands Antilles","calling_code"=>"599"); 
$countries['NC'] = array("code"=>"NC","short_name"=>"New Caledonia","calling_code"=>"687"); 
$countries['NZ'] = array("code"=>"NZ","short_name"=>"New Zealand","calling_code"=>"64"); 
$countries['NI'] = array("code"=>"NI","short_name"=>"Nicaragua","calling_code"=>"505"); 
$countries['NE'] = array("code"=>"NE","short_name"=>"Niger","calling_code"=>"227"); 
$countries['NG'] = array("code"=>"NG","short_name"=>"Nigeria","calling_code"=>"234"); 
$countries['NU'] = array("code"=>"NU","short_name"=>"Niue","calling_code"=>"683"); 
$countries['NF'] = array("code"=>"NF","short_name"=>"Norfolk Island","calling_code"=>"672"); 
$countries['KP'] = array("code"=>"KP","short_name"=>"North Korea","calling_code"=>"850"); 
$countries['MP'] = array("code"=>"MP","short_name"=>"Northern Mariana Islands","calling_code"=>"1"); 
$countries['NO'] = array("code"=>"NO","short_name"=>"Norway","calling_code"=>"47"); 
$countries['OM'] = array("code"=>"OM","short_name"=>"Oman","calling_code"=>"968"); 
$countries['PK'] = array("code"=>"PK","short_name"=>"Pakistan","calling_code"=>"92"); 
$countries['PW'] = array("code"=>"PW","short_name"=>"Palau","calling_code"=>"680"); 
$countries['PS'] = array("code"=>"PS","short_name"=>"Palestine","calling_code"=>"970"); 
$countries['PA'] = array("code"=>"PA","short_name"=>"Panama","calling_code"=>"507"); 
$countries['PG'] = array("code"=>"PG","short_name"=>"Papua New Guinea","calling_code"=>"675"); 
$countries['PY'] = array("code"=>"PY","short_name"=>"Paraguay","calling_code"=>"595"); 
$countries['PE'] = array("code"=>"PE","short_name"=>"Peru","calling_code"=>"51"); 
$countries['PH'] = array("code"=>"PH","short_name"=>"Philippines","calling_code"=>"63"); 
$countries['PL'] = array("code"=>"PL","short_name"=>"Poland","calling_code"=>"48"); 
$countries['PT'] = array("code"=>"PT","short_name"=>"Portugal","calling_code"=>"351"); 
$countries['PR'] = array("code"=>"PR","short_name"=>"Puerto Rico","calling_code"=>"1"); 
$countries['QA'] = array("code"=>"QA","short_name"=>"Qatar","calling_code"=>"974"); 
$countries['CG'] = array("code"=>"CG","short_name"=>"Republic of the Congo","calling_code"=>"242"); 
$countries['RE'] = array("code"=>"RE","short_name"=>"Réunion" ,"calling_code"=>"262"); 
$countries['RO'] = array("code"=>"RO","short_name"=>"Romania","calling_code"=>"40"); 
$countries['RU'] = array("code"=>"RU","short_name"=>"Russia","calling_code"=>"7"); 
$countries['RW'] = array("code"=>"RW","short_name"=>"Rwanda","calling_code"=>"250"); 
$countries['BL'] = array("code"=>"BL","short_name"=>"Saint Barthélemy" ,"calling_code"=>"590"); 
$countries['SH'] = array("code"=>"SH","short_name"=>"Saint Helena","calling_code"=>"290"); 
$countries['KN'] = array("code"=>"KN","short_name"=>"Saint Kitts and Nevis","calling_code"=>"1"); 
$countries['MF'] = array("code"=>"MF","short_name"=>"Saint Martin","calling_code"=>"590"); 
$countries['PM'] = array("code"=>"PM","short_name"=>"Saint Pierre and Miquelon","calling_code"=>"508"); 
$countries['VC'] = array("code"=>"VC","short_name"=>"Saint Vincent and the Grenadines","calling_code"=>"1"); 
$countries['WS'] = array("code"=>"WS","short_name"=>"Samoa","calling_code"=>"685"); 
$countries['SM'] = array("code"=>"SM","short_name"=>"San Marino","calling_code"=>"378"); 
$countries['ST'] = array("code"=>"ST","short_name"=>"São Tomé and Príncipe" ,"calling_code"=>"239"); 
$countries['SA'] = array("code"=>"SA","short_name"=>"Saudi Arabia","calling_code"=>"966"); 
$countries['SN'] = array("code"=>"SN","short_name"=>"Senegal","calling_code"=>"221"); 
$countries['RS'] = array("code"=>"RS","short_name"=>"Serbia","calling_code"=>"381"); 
$countries['SC'] = array("code"=>"SC","short_name"=>"Seychelles","calling_code"=>"248"); 
$countries['SL'] = array("code"=>"SL","short_name"=>"Sierra Leone","calling_code"=>"232"); 
$countries['SG'] = array("code"=>"SG","short_name"=>"Singapore","calling_code"=>"65"); 
$countries['SK'] = array("code"=>"SK","short_name"=>"Slovakia","calling_code"=>"421"); 
$countries['SI'] = array("code"=>"SI","short_name"=>"Slovenia","calling_code"=>"386"); 
$countries['SB'] = array("code"=>"SB","short_name"=>"Solomon Islands","calling_code"=>"677"); 
$countries['SO'] = array("code"=>"SO","short_name"=>"Somalia","calling_code"=>"252"); 
$countries['ZA'] = array("code"=>"ZA","short_name"=>"South Africa","calling_code"=>"27"); 
$countries['KR'] = array("code"=>"KR","short_name"=>"South Korea","calling_code"=>"82"); 
$countries['ES'] = array("code"=>"ES","short_name"=>"Spain","calling_code"=>"34"); 
$countries['LK'] = array("code"=>"LK","short_name"=>"Sri Lanka","calling_code"=>"94"); 
$countries['LC'] = array("code"=>"LC","short_name"=>"St. Lucia","calling_code"=>"1"); 
$countries['SD'] = array("code"=>"SD","short_name"=>"Sudan","calling_code"=>"249"); 
$countries['SR'] = array("code"=>"SR","short_name"=>"Surishort_name","calling_code"=>"597"); 
$countries['SZ'] = array("code"=>"SZ","short_name"=>"Swaziland","calling_code"=>"268"); 
$countries['SE'] = array("code"=>"SE","short_name"=>"Sweden","calling_code"=>"46"); 
$countries['CH'] = array("code"=>"CH","short_name"=>"Switzerland","calling_code"=>"41"); 
$countries['SY'] = array("code"=>"SY","short_name"=>"Syria","calling_code"=>"963"); 
$countries['TW'] = array("code"=>"TW","short_name"=>"Taiwan","calling_code"=>"886"); 
$countries['TJ'] = array("code"=>"TJ","short_name"=>"Tajikistan","calling_code"=>"992"); 
$countries['TZ'] = array("code"=>"TZ","short_name"=>"Tanzania","calling_code"=>"255"); 
$countries['TH'] = array("code"=>"TH","short_name"=>"Thailand","calling_code"=>"66"); 
$countries['BS'] = array("code"=>"BS","short_name"=>"The Bahamas","calling_code"=>"1"); 
$countries['GM'] = array("code"=>"GM","short_name"=>"The Gambia","calling_code"=>"220"); 
$countries['TL'] = array("code"=>"TL","short_name"=>"Timor-Leste","calling_code"=>"670"); 
$countries['TG'] = array("code"=>"TG","short_name"=>"Togo","calling_code"=>"228"); 
$countries['TK'] = array("code"=>"TK","short_name"=>"Tokelau","calling_code"=>"690"); 
$countries['TO'] = array("code"=>"TO","short_name"=>"Tonga","calling_code"=>"676"); 
$countries['TT'] = array("code"=>"TT","short_name"=>"Trinidad and Tobago","calling_code"=>"1"); 
$countries['TN'] = array("code"=>"TN","short_name"=>"Tunisia","calling_code"=>"216"); 
$countries['TR'] = array("code"=>"TR","short_name"=>"Turkey","calling_code"=>"90"); 
$countries['TM'] = array("code"=>"TM","short_name"=>"Turkmenistan","calling_code"=>"993"); 
$countries['TC'] = array("code"=>"TC","short_name"=>"Turks and Caicos Islands","calling_code"=>"1"); 
$countries['TV'] = array("code"=>"TV","short_name"=>"Tuvalu","calling_code"=>"688"); 
$countries['UG'] = array("code"=>"UG","short_name"=>"Uganda","calling_code"=>"256"); 
$countries['UA'] = array("code"=>"UA","short_name"=>"Ukraine","calling_code"=>"380"); 
$countries['AE'] = array("code"=>"AE","short_name"=>"United Arab Emirates","calling_code"=>"971"); 
$countries['GB'] = array("code"=>"GB","short_name"=>"United Kingdom","calling_code"=>"44"); 
$countries['US'] = array("code"=>"US","short_name"=>"United States","calling_code"=>"1"); 
$countries['UY'] = array("code"=>"UY","short_name"=>"Uruguay","calling_code"=>"598"); 
$countries['VI'] = array("code"=>"VI","short_name"=>"US Virgin Islands","calling_code"=>"1"); 
$countries['UZ'] = array("code"=>"UZ","short_name"=>"Uzbekistan","calling_code"=>"998"); 
$countries['VU'] = array("code"=>"VU","short_name"=>"Vanuatu","calling_code"=>"678"); 
$countries['VA'] = array("code"=>"VA","short_name"=>"Vatican City","calling_code"=>"39"); 
$countries['VE'] = array("code"=>"VE","short_name"=>"Venezuela","calling_code"=>"58"); 
$countries['VN'] = array("code"=>"VN","short_name"=>"Vietnam","calling_code"=>"84"); 
$countries['WF'] = array("code"=>"WF","short_name"=>"Wallis and Futuna","calling_code"=>"681"); 
$countries['YE'] = array("code"=>"YE","short_name"=>"Yemen","calling_code"=>"967"); 
$countries['ZM'] = array("code"=>"ZM","short_name"=>"Zambia","calling_code"=>"260"); 
$countries['ZW'] = array("code"=>"ZW","short_name"=>"Zimbabwe","calling_code"=>"263"); 

,我只是取我想用的值:

$country_code=$_SERVER["HTTP_CF_IPCOUNTRY"]; 
$country=$countries[''.$country_code.'']; 

因此不再需要連接到數據庫,並使用MySQL。

我的問題是,這個數組每秒載入幾次會不好?它會影響性能嗎?我應該像我以前那樣簡單地連接到數據庫嗎?

服務器有16GB的RAM和8個內核。我們每天談論40-50萬次訪問。

謝謝!

+0

數組的方式,它只是在文件內部亂成一團,應該儘可能地做到代碼乾淨,以便更好地組織代碼,而不是現在,但對於其他任何事情的發展,嘗試使用數據庫並導入這些數據庫中的值,然後根據國家/地區代碼獲取信息。如果您要使用數據庫,則可以在任何文件和任何頁面中獲取所有信息。否則你必須將這些數組複製並粘貼到每個文件中。 –

+0

這個數組駐留在內存中,所以它會更快......通過使用類似Redis的東西(它可以將DB結果緩存在內存中),可以提高數據庫的性能。或者你可以用一個靜態的'getCountries()'方法創建一個'Country'類 - 這樣當列表需要時(理論上)該列表將只存在於內存中,並且你的國家數據仍然存在於一個地方。但我們並不是在討論大量的數據。 – CD001

+0

我有一個建議,你爲什麼不緩存這些數據,因爲國家不會每天都改變你需要爲國家做緩存,這將使你的應用程序非常順利。 –

回答

2

第一:$country=$countries[''.$country_code.''];可以用這個$country=$countries[$country_code];

代替這個數組definitly在數據庫更好的選擇。每個連接都需要一些時間,並且可以更快地訪問數組。

如果您想確切瞭解它們之間的差異,可以使用此「小測試套件」來確定運行時差異。

$start1 = microtime(true); 

for($i = 0; $i < 10000; $i++) 
{ 
    //With database 
} 
$end1 = microtime(true); 

unset(); // The variables which might have been set the section above 

$start2 = microtime(true); 
for($i = 0; $i < 10000; $i++) 
{ 
    //code with array 
} 
$end2 = microtime(true); 

echo $end1-$start1."<br />"; 
echo $end2-$start2."<br />"; 

我希望這可以幫助你,如果不是,請讓我知道。

+0

謝謝。是的,一行代碼確實是多餘的。陋習。 – PHPWhisperer

+1

這個答案中的第一個錯誤沒有意義。你的意思是'$ country = $ countries [$ country_code];' – Steve

+0

絕對是。我修好了,謝謝你的提示 – JRsz

相關問題