Как загрузить XML из этого кода, пожалуйста - PullRequest
0 голосов
/ 03 апреля 2012

Я хочу загрузить внутренние значения из этого xml-кода:

    <?xml version="1.0" encoding="UTF-8"?>
<geoPlugin>
    <geoplugin_city>Salt Lake City</geoplugin_city>
    <geoplugin_region>UT</geoplugin_region>
    <geoplugin_areaCode>801</geoplugin_areaCode>
    <geoplugin_dmaCode>770</geoplugin_dmaCode>
    <geoplugin_countryCode>US</geoplugin_countryCode>
    <geoplugin_countryName>United States</geoplugin_countryName>
    <geoplugin_continentCode>NA</geoplugin_continentCode>
    <geoplugin_latitude>40.700199127197</geoplugin_latitude>
    <geoplugin_longitude>-111.94339752197</geoplugin_longitude>
    <geoplugin_regionCode>UT</geoplugin_regionCode>
    <geoplugin_regionName>Utah</geoplugin_regionName>
    <geoplugin_currencyCode>USD</geoplugin_currencyCode>
    <geoplugin_currencySymbol>&#36;</geoplugin_currencySymbol>
    <geoplugin_currencyConverter>1</geoplugin_currencyConverter>
</geoPlugin>

Если вы можете видеть геопулин_город и т. Д. Я хочу загрузить эти значения в php

$location = 'http://www.geoplugin.net/xml.gp?ip='.$_SERVER['REMOTE_ADDR'];
$xml = simplexml_load_file($location);

, чтоне работалпожалуйста, помогите мне.

Ответы [ 5 ]

2 голосов
/ 03 апреля 2012

Он не выводит XML, он выводит сериализованные данные PHP:

$location = 'http://www.geoplugin.net/php.gp?ip=192.168.1.1';
$file = unserialize(file_get_contents($location));
print_r($file);
1 голос
/ 03 апреля 2012

Измените свой код на этот первый

$location = 'http://www.geoplugin.net/xml.gp?ip='.$_SERVER['REMOTE_ADDR'];
$xml = simplexml_load_file($location);

После этого выполните цикл Foreach, чтобы получить все данные из этого.

foreach ($xml as $keys => $values) {
     $data[] = $values; // $data array have all your data independently.
}

Теперь распечатайте массив ипроверьте значения.

<code>echo "<pre>"; print_r($data); echo "
";

Однако попробуйте сбросить переменные, чтобы получить и типы данных.

var_dump($xml);
1 голос
/ 03 апреля 2012

Если вам нужны значения в PHP, я бы рекомендовал вообще не использовать библиотеку XML.

$data = unserialize(file_get_contents('http://www.geoplugin.net/php.gpip='.$_SERVER['REMOTE_ADDR'])));
//Then access the data directly.
echo $data['geoplugin_city'];
echo $data['geoplugin_region'];
1 голос
/ 03 апреля 2012

Вы захотите использовать API XML вместо API PHP.

$location = 'http://www.geoplugin.net/xml.gp?ip='.$_SERVER['REMOTE_ADDR'];
$xml = simplexml_load_file($location);
1 голос
/ 03 апреля 2012

, если вы хотите вызвать xml API, URL будет

$location = 'http://www.geoplugin.net/xml.gp?ip='.$_SERVER['REMOTE_ADDR'];
$xml = simplexml_load_file($location);

Образец вывода

<?xml version="1.0" encoding="UTF-8"?>
<geoPlugin>
    <geoplugin_city>Lagos</geoplugin_city>
    <geoplugin_region>Lagos</geoplugin_region>
    <geoplugin_areaCode>0</geoplugin_areaCode>
    <geoplugin_dmaCode>0</geoplugin_dmaCode>
    <geoplugin_countryCode>NG</geoplugin_countryCode>
    <geoplugin_countryName>Nigeria</geoplugin_countryName>
    <geoplugin_continentCode>AF</geoplugin_continentCode>
    <geoplugin_latitude>6.4531002044678</geoplugin_latitude>
    <geoplugin_longitude>3.395800113678</geoplugin_longitude>
    <geoplugin_regionCode>05</geoplugin_regionCode>
    <geoplugin_regionName>Lagos</geoplugin_regionName>
    <geoplugin_currencyCode>NGN</geoplugin_currencyCode>
    <geoplugin_currencySymbol>&#8358;</geoplugin_currencySymbol>
    <geoplugin_currencyConverter>157.6899963379</geoplugin_currencyConverter>
</geoPlugin>

РЕДАКТИРОВАТЬ 1

echo "<pre>";
foreach($xml as $key => $value)
{
    echo $key , " = " , $value , "\n" ;
}

Выход

geoplugin_city = Lagos
geoplugin_region = Lagos
geoplugin_areaCode = 0
geoplugin_dmaCode = 0
geoplugin_countryCode = NG
geoplugin_countryName = Nigeria
geoplugin_continentCode = AF
geoplugin_latitude = 6.4531002044678
geoplugin_longitude = 3.395800113678
geoplugin_regionCode = 05
geoplugin_regionName = Lagos
geoplugin_currencyCode = NGN
geoplugin_currencySymbol = ₦
geoplugin_currencyConverter = 157.6899963379

Спасибо

:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...