我正在寻找一种明确的方式来检测访客是否来自中东.如果是的话,我需要显示一个不同的标题图像(当前的标题图像中有一个标记图像,所以它不受欢迎).
我可以编写if then else,但我只是想找一个简单的函数来检测.这是我用来通过IP获取国家的功能:
function get_country_by_ip($ip){
if(!$ip) return false; # Missing parameter
# Pull the XML
$url = 'http://api.hostip.info/?ip='.$ip;
$xml = simplexml_load_file($url);
# Parse the data and store into array
$citystate = explode(", ", $xml->children('gml', true)->featureMember->children()->Hostip->children('gml', true)->name);
$result['city'] = $citystate[0];
$result['state'] = $citystate[1];
$result['country'] = $xml->children('gml', true)->featureMember->children()->Hostip->countryName;
$result['country_abbr'] = $xml->children('gml', true)->featureMember->children()->Hostip->countryAbbrev;
return (object) $result;
}
有人可以帮忙吗?谢谢.
解决方法:
您可以定义哪些国家属于“中东”组 – 通过直接在PHP文件或数据库中定义可配置数组,然后检查您的函数返回的给定国家/地区是否属于属于“中东”的国家/地区列表.通过你的例子,这样的事情:
$middleEast = array(
'Syria',
'Iraq',
... // all the rest
);
$country = get_country_by_ip($ip);
if (in_array($country['country'], $middleEast) {
echo 'Middle East!';
exit;
}
标签:php,geoip 来源: https://codeday.me/bug/20190630/1336986.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。