如何解析 HostIP 地理定位 API 的输出?
如果我通过 http://api.hostip.info/get_html 访问 HostIP 地理定位 API .php?ip=193.148.1.1,它返回三行文本:
Country: SPAIN (ES)
City: (Unknown city)
IP: 193.148.1.1
如何在 PHP 中解析该输出以提取国家/地区名称?
If I access the HostIP geolocation API via http://api.hostip.info/get_html.php?ip=193.148.1.1, it returns three lines of text:
Country: SPAIN (ES)
City: (Unknown city)
IP: 193.148.1.1
How can I parse that output in PHP to extract the country name?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
尝试这些 preg_matches
Try these preg_matches
PHP 的一些正则表达式会有帮助吗?
Would some regex for PHP help?
如果您使用以下 URL:
http://api.hostip.info/?ip=193.148.1.1
而不是:
http://, 您可以从 hostip.info 获取 XML 响应api.hostip.info/get_html.php?ip=193.148.1.1
然后,您可以解析 XML,它比正则表达式更干净,并且可能更不受输出格式可能发生的变化的影响。
这是解析输出的示例:
You can obtain an XML response from hostip.info if you use the following URL:
http://api.hostip.info/?ip=193.148.1.1
instead of:
http://api.hostip.info/get_html.php?ip=193.148.1.1
Then, you can parse the XML which is kind of cleaner than Regex, and probably more immune to the possible changes of output formatting.
This is an example of parsing the output:
仅限国家/地区: http://api.hostip.info/country.php?ip= 193.148.1.1
country only: http://api.hostip.info/country.php?ip=193.148.1.1
http://api.hostip.info/get_json.php?position=true
{"country_name":"VENEZUELA","country_code":"VE","city":"加拉加斯","ip":"xxx.xx.xxx.xx","lat":"x.xxx"," lng":"-xx.xxxx"}
http://api.hostip.info/get_json.php?position=true
{"country_name":"VENEZUELA","country_code":"VE","city":"Caracas","ip":"xxx.xx.xxx.xx","lat":"x.xxx","lng":"-xx.xxxx"}