XML в PHP ошибка - SimpleXMLElement::__construct()

Crank174RuS
Сообщения: 66
Зарегистрирован: 19 сен 2010
Из за чего вылетает эта ошибка?
Делаю так:

Код: Выделить всё

[b]$zeck = @file("http://109.234.157.38/prison/universal.php?getInfo&key=******&sig=da14a0d10f3ded37f390e54a6f7b329e&user=*****&method=getInfo");
  $zeck_str = @implode("", $zeck);
  $xml = new SimpleXMLElement($zeck_str);
if(!empty($xml)){
  $name=strval($xml->user->name);
 }
echo $name;[/b]


Вытащить нужно это:

Код: Выделить всё

[b]<?xml version="1.0" encoding="UTF-8"?>
<data>
   <user>
      <name>Имя</name>
   </user>
</data>[/b]

Аватара пользователя
AgentSIB
Администратор
Сообщения: 328
Зарегистрирован: 17 май 2010
Во первых используй либо simplexml_load_string или simplexml_load_file. Во вторых file - это что за функция? может все же file_get_contents?
Frustra fit per plura quod potest fieri per pauciora © Закон "Бритвы Оккама"

Crank174RuS
Сообщения: 66
Зарегистрирован: 19 сен 2010
Сделал так:

Код: Выделить всё

 $zeck = file_get_contents("http://109.234.157.38/prison/universal.php?getInfo&key=*****&sig=da14a0d10f3ded37f390e54a6f7b329e&user=*****&method=getInfo");
  $zeck_str = @implode("", $zeck);
  $xml = simplexml_load_string($zeck_str);
if(!empty($xml)){
  $name=strval($xml->user->name);
 }
echo $name;

Все равно ошибка(

-- добавлено 02 ноя 2011, 19:50 --

то есть выводит пустое окно.

Аватара пользователя
AgentSIB
Администратор
Сообщения: 328
Зарегистрирован: 17 май 2010
Ну а в логах что пишет?
сделай после $zeck_str = @implode("", $zeck);
var_dump($zeck_str); Есть ли данные? Вообще кстати эта строка нафиг не нужна.
Frustra fit per plura quod potest fieri per pauciora © Закон "Бритвы Оккама"

Crank174RuS
Сообщения: 66
Зарегистрирован: 19 сен 2010
Данные есть)
Сделал так:

Код: Выделить всё

function pars($log,$begin,$end)
{
$begin = strpos($log, $begin) + strlen($begin);
$end = strpos($log, $end, $begin);
$result = substr($log, $begin, $end - $begin);
return $result;
}
$zeck = file_get_contents('http://109.234.157.38/prison/universal.php?getInfo&key=*****&sig=da14a0d10f3ded37f390e54a6f7b329e&user=*****&method=getInfo');
$name= pars($zeck, "<name>","</name>");
if ($zeck!==false) {
echo $rating.'<br>';
}

Все заработало)

Теперь я не могу понять как мне с пощью такого скрипта вывести данные bossID по отдельности?:
XML:

Код: Выделить всё

<playerWins>
      <playerWin>
         <bossId>1</bossId>
         <droppedKeys>1</droppedKeys>
         <winCount>1344</winCount>
            <coolWinCount>0</coolWinCount>
            <epicWinCount>0</epicWinCount>
      </playerWin>
      <playerWin>
         <bossId>2</bossId>
         <droppedKeys>2</droppedKeys>
         <winCount>418</winCount>
            <coolWinCount>0</coolWinCount>
            <epicWinCount>0</epicWinCount>
      </playerWin>
      <playerWin>
         <bossId>3</bossId>
         <droppedKeys>2</droppedKeys>
         <winCount>125</winCount>
            <coolWinCount>0</coolWinCount>
            <epicWinCount>0</epicWinCount>
      </playerWin>
      <playerWin>
         <bossId>4</bossId>
         <droppedKeys>13</droppedKeys>
         <winCount>32</winCount>
            <coolWinCount>0</coolWinCount>
            <epicWinCount>0</epicWinCount>
      </playerWin>
</playerWins>

Аватара пользователя
AgentSIB
Администратор
Сообщения: 328
Зарегистрирован: 17 май 2010
2Crank174RuS
Блин, ну уже разжевали все вроде по simplexml.

viewtopic.php?t=1066&p=6364

Почитай чтоли на офсайте про эту функцию...
Frustra fit per plura quod potest fieri per pauciora © Закон "Бритвы Оккама"


Вернуться в «Другие вопросы»