如何通过 PHP 检测中东访客?
我正在寻找一种明确的方法来检测访客是否来自中东。如果是的话,我需要显示一个不同的标题图像(当前的标题图像中有一只猪,所以它不受欢迎)。
我可以为此编写 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;
}
有人可以帮忙吗?谢谢。
I'm looking for a clear cut way to detect if a visitor is from the Middle East. If they are, I need to display a different header image (the current one has a hog in it, so it is frowned upon).
I can code the if then else for that, but I'm just looking for a simple function to detect. Here's a function I used to get the country by 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;
}
Can anyone help? Thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您可以定义哪些国家/地区属于“中东”组 - 通过直接在 PHP 文件或数据库中定义可配置数组,然后检查函数返回的给定国家/地区是否在属于“中东”的国家/地区列表中。以你的例子来说,是这样的:
You could define which countries fall into the "Middle East" group - by defining configurable array directly in the PHP file or in database and then check if the given country returned by your function is amongst the list of countries that belong to "Middle East". By your example, something like this:
我建议您免费尝试http://phpweby.com/software/ip2country。
i suggest you to try http://phpweby.com/software/ip2country for free.