【发布时间】:2016-07-18 10:01:05
【问题描述】:
上下文:
我想检测我的用户的两个字母的大陆代码,以允许我有条件地显示美国或更通用的电话号码。
例如如果大陆代码是北美或南美,则显示北美电话号码。否则,显示一般国际电话号码。
我尝试过的:
- A similar question on Stack Overflow 是使用轻量级函数解决的,但在我的情况下,该函数没有输出任何内容(即空白)。
- PHP 手册列出了 GEOIP 扩展的 geoip_continent_code_by_name 函数,但安装此扩展似乎有点过头了,此外,我对 WHM/cPanel 的命令行安装完全不熟悉。
我的问题:
有没有更简单、更轻量级的IP检测两字母大陆码的方法?
【问题讨论】:
-
你可以看看这个函数:php.net/manual/fr/function.geoip-continent-code-by-name.php。您需要安装 PECL Geoip。
-
在尝试 1 中,您检查了错误日志吗?空白输出可能是由错误引起的...或者您可以尝试在 IP 上运行
whois。 -
@chris85 唯一的错误与尝试 2 相关(致命错误,调用未定义函数)。
-
函数调用的第一个值应该是IP,你改了吗?在本地测试我做了
$ipinfo = ip_info('50.203.165.214'); echo $ipinfo['country_code'];,它对我有用。 -
那些
echos都是没用的。Visitor需要是 IP,$_SERVER['REMOTE_ADDR']..或print_r($ipinfo);