根据国家或时区PHP,Codeigniter获取货币

时间:2017-04-01 06:45:58

标签: php codeigniter

我想在国家的基础上获得货币,假设我在美国访问我的网页然后我的货币应该是美元,如果我在其他地区访问我的页面,我们假设阿联酋我的货币应该在达勒姆。

我很困惑如何获得这样的价值,我已经尝试了所有可行的方式,例如geoip_time_zone_by_country_and_region(); geoip_region_by_name(); 可能是我没有以正确的方式得到这些。我是通过使用PHP和codeigniter来实现的。

2 个答案:

答案 0 :(得分:0)

  1. 货币符号
  2. 国旗
  3. 货币格式
  4. 其他自定义选项
  5. 我在我正在制作的一个项目中使用了所有这些,我可以与你分享。

    <强>步骤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
    

    其余部分由函数完成,并呈现视图。我将符号和标志保存为图标和图像,获取其网址并回显它们。当然,这可能不是一个完美的方式,但它可以节省大量的研究

答案 1 :(得分: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": ""
}