使用 preg_match 从 xml 文件获取数据的问题

发布于 2024-12-21 18:05:46 字数 637 浏览 0 评论 0原文

我正在尝试使用外部站点的 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:

http://api.hostip.info/

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:

http://api.hostip.info/

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

趁年轻赶紧闹 2024-12-28 18:05:46

您需要转义冒号 '/(.*)<\/gml\:name>/'

You need to escape the colon '/<gml\:name>(.*)<\/gml\:name>/'

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文