2017-04-01 72 views
0

我想根据国家获得货币,假设如果我在美国访问我的网页,那么我的货币应该是美元,如果我是访问我在其他地区的网页让我们假设阿联酋,所以我的货币应该在达勒姆。以国家或时区为基础提取货币PHP,Codeigniter

我很困惑如何获得这样的价值,我尝试了所有可能的方式,如geoip_time_zone_by_country_and_region(); geoip_region_by_name(); 可能是我没有得到适当的方式。我通过使用PHP和codeigniter来做到这一点。

+0

只是一个建议。您可以制作一个通用功能,即比较时区并返回相应的价格。 –

+0

我试过这个,但没有任何工作正常,如果你有任何与此有关的事情,或者你可以帮助与例子,将不胜感激:) –

+0

你有没有得到国家的时区? –

回答

0

您禁毒常务委员会使用这个网址:

http://www.geoplugin.net/json.gp?ip="ip address here" 

它将以JSON格式响应回数据:

{ 
"as": "AS4755 TATA Communications formerly VSNL is Leading ISP", 
"city": "Bengaluru", 
"country": "India", 
"countryCode": "IN", 
"isp": "Tata Communications", 
"lat": 12.9833, 
"lon": 77.5833, 
"org": "Tata Communications", 
"query": "14.141.47.106", 
"region": "KA", 
"regionName": "Karnataka", 
"status": "success", 
"timezone": "Asia/Kolkata", 
"zip": "" 
} 
0
  1. 货币符号
  2. 国家国旗
  3. 货币格式
  4. 其他定制选项

我用这一切在我的项目之一是在生产,我可以分享您。

第1步

我使用的是偏好表中,我保留设置这样

Preferences Table

步骤2

在我的控制,我得到按IP国家并将代码保存在变量中

$geo_data = geolocation_by_ip($ip); 

参考:Geo Location by IP

在我的模型我创建了一个功能,通过国家代码

$data['preferences']=$this->My_Model->getPrefByCountryCode($geo_data['country_code']); 

让喜好,并将其保存在数组,然后我把它发送到视图

$this->load->view('path/to/my/view',$data); 

在我看来,我只是回应他们

货币格式

对于货币格式我用PHP money_format()功能和第二个参数

setlocale(LC_MONETARY,"en_US"); // I get money_format from database 

其余部分由函数完成和视图渲染。我将符号和标志保存为图标和图像,获取它们的URL并回显它们。Ofcourse,这可能不是最完美的方式,但它可以节省大量的研究