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

Ответить
Crank174RuS
Сообщения: 66
Зарегистрирован: 19.09.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
Сообщения: 329
Зарегистрирован: 17.05.2010
Во первых используй либо simplexml_load_string или simplexml_load_file. Во вторых file - это что за функция? может все же file_get_contents?
Frustra fit per plura quod potest fieri per pauciora © Закон "Бритвы Оккама"

Crank174RuS
Сообщения: 66
Зарегистрирован: 19.09.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
Сообщения: 329
Зарегистрирован: 17.05.2010
Ну а в логах что пишет?
сделай после $zeck_str = @implode("", $zeck);
var_dump($zeck_str); Есть ли данные? Вообще кстати эта строка нафиг не нужна.
Frustra fit per plura quod potest fieri per pauciora © Закон "Бритвы Оккама"

Crank174RuS
Сообщения: 66
Зарегистрирован: 19.09.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
Сообщения: 329
Зарегистрирован: 17.05.2010
2Crank174RuS
Блин, ну уже разжевали все вроде по simplexml.

viewtopic.php?t=1066&p=6364

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

Ответить