使用 preg_match 从 xml 文件获取数据的问题
我正在尝试使用外部站点的 API 通过 file_get_contents
获取用户 IP 信息(国家/地区、城市等):
$ht="http://api.hostip.info/?ip=99.99.99.99";//example ip address<<
$com = file_get_contents("$ht");
preg_match('/<countryName>(.*)<\/countryName>/',$com,$oun);
preg_match('/<gml:name>(.*)<\/gml:name>/',$com,$it);
$country=$oun[1];
$city=$it[1];
echo $country, $city;
我可以使用该代码获取国家/地区、IP 和其他信息,但不能获取城市...
我认为问题在于 :
in gml:name
....
这是我试图从中获取数据的 XML:
I'm trying to use an external site's API to get users IP info (country, city, etc etc) with file_get_contents
:
$ht="http://api.hostip.info/?ip=99.99.99.99";//example ip address<<
$com = file_get_contents("$ht");
preg_match('/<countryName>(.*)<\/countryName>/',$com,$oun);
preg_match('/<gml:name>(.*)<\/gml:name>/',$com,$it);
$country=$oun[1];
$city=$it[1];
echo $country, $city;
I can get the country, IP and other things with that code, just not the city...
I think the issue lies with the
:
in gml:name
....
Here is the XML I'm trying to get the data from:
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您需要转义冒号
'/(.*)<\/gml\:name>/'
You need to escape the colon
'/<gml\:name>(.*)<\/gml\:name>/'