PHP - Obtener datos de xml

 
Vista:

Obtener datos de xml

Publicado por nelson casey (4 intervenciones) el 07/04/2014 16:50:54
Hola gente!
Estoy teniendo problemas para la lectura de un archivo xml.
El formato es el siguiente:

1
2
3
4
5
6
7
8
9
10
<?xml version="1.0" encoding="utf-8"?>
<Info>
<CurrentTrack>
<TRACK ARTIST="Los Auténticos Decadentes &amp; Julieta Venegas" TITLE="No Me Importa El Dinero" ALBUM="Hecho En México: En Vivo En El Palacio De Los Deportes" YEAR="" GENRE="Rock" COMMENT="" FILENAME="M:\Mi musica\Archivos Radio\CD Completos\Los Autenticos Decadentes - Hecho En Mexico (2012)\los autenticos decadentes-no me importa el dinero (con julieta venegas).mp3" DURATION="03:54"  PLAYCOUNT="105" INTRO="22.67" />
</CurrentTrack>
<NextTrack>
<TRACK ARTIST="Alejandra Guzman Ft. Yandel" TITLE="Mi Peor Error (Official Remix)" ALBUM="IPAUTA" YEAR="2014" GENRE="Latin" COMMENT="IPAUTA, INC" FILENAME="M:\Mi musica\Alejandra Guzman Ft. Yandel - Mi Peor Error (Official Remix).mp3" DURATION="03:12"  PLAYCOUNT="79" INTRO="4.68" />
</NextTrack>
<Playback pos="120710" len="234986" state="play" playlistpos="1" />
</Info>


Necesito obtener el nombre y titulo de las canciones.
Escribí el siguiente código, pero no muestra nada y no se porqué.

1
2
3
4
$url = file_get_contents($xmls);
$xml = simplexml_load_string($url);
$title = $xml->TRACK[0]['TITLE'];
echo $title;
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Obtener datos de xml

Publicado por xve (6935 intervenciones) el 07/04/2014 19:47:34
Hola nelson, prueba así:

1
$title = $xml->CurrentTrack[0]->TRACK[0]['TITLE'];

Coméntanos, ok?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Obtener datos de xml

Publicado por nelson (4 intervenciones) el 08/04/2014 00:33:28
Funciono a la perfeccion! muchas gracias!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Obtener datos de xml

Publicado por Vega (3 intervenciones) el 07/04/2014 23:42:13
Que coincidencia, justamente iba a hacer una consulta con un problema que tengo justo hoy, y lo mas curioso es que yo tambien estoy intentando hacer un stats para radio haha :D

Bueno, hola a todos, yo nuevamente, aprovecho que mi compañero hizo este hilo para yo publicar mi consulta y asi no halla tantos hilos.

Resulta que intento construir un script php que me muestre las estadisticas de una radio en ShoutCast.

El formato del XML de donde quiero extraer los datos es así:
1
<ETIQUETA>DATO</ETIQUETA>

Entonces investigando en internet pude encontrar esto:
1
2
3
4
5
6
<?php
//Leemos el archivo
$xml=simplexml_load_file("archivo.xml");
//Mostramos el DATO de la ETIQUETA XML
echo $xml->NOMBREDEETIQUETA . "<br>";
?>

Y me pareció simple, pero al querer hacerlo remotamente, no me permite leer el XML, me aparece la advertencia "Forbiden, acceso denegado". Lo cual me extraña por que desde el navegador funcionó bien, entonces se me prendió el foco y basándome en otras estadísticas de radio noté que utilizan el UserAgent siguiente:

1
HTTP/1.0\r\nUser-Agent: SHOUTcast Song Status (Mozilla Compatible)\r\n\r\n

No pude conseguir el cómo agregar ese UserAgent al momento de extraer los datos para que finalmente me permita poder leerlos (pienso que con eso bastará). Espero que alguien pueda guíarme como, o si es necesario utilizar otra función, sólo hagan el favor de decirme el nombre de ella y leeré el manual para ver cómo funciona :)

Cualquier ayuda será bien agradecida :D Saludos a todos!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Obtener datos de xml

Publicado por nelson casey (4 intervenciones) el 08/04/2014 00:34:40
Hola, no se si te sirve pero para shoutcast v2 tengo este codigo:

1
2
3
4
$url = file_get_contents("http://server:puerto/stats?sid=1.xml");
$xml = simplexml_load_string($url);
foreach ($xml->SONGTITLE as $cancion)
$cancion = utf8_decode($cancion);
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Obtener datos de xml

Publicado por Vega (3 intervenciones) el 08/04/2014 00:44:27
Hola Compañero, gracias por la ayuda pero lamentablemente el servidor que tengo es ShoutCast v1.9.8

El formato para ver el XML de las estadísticas es:
1
http://SERVIDOR:PUERTO/admin.cgi?pass=CONTRASEÑAdeADMIN&mode=viewxml

Ya he probado muchas radio stats y nomás no logro que ninguna funcione.

No se si pudieras recomendarme un hosting de shoutcast que tengan v2 :D

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Obtener datos de xml

Publicado por Nelson (4 intervenciones) el 08/04/2014 05:41:36
Probá con el codigo que tengo abajo.
Antes yo tenia shoutcast V1.8 y creo que este es el codigo que usaba.
Si no, para pasarte a shoutcast v2 te recomiendo los servidores de radioboss.fm

Saludos!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
$host = "http://s1......fm"; // ip or url of shoutcast server
$port = "9036";          // port of shoutcast server 
$fp = @fsockopen("$host", $port, $errno, $errstr, 30);
 
if($fp)
{
  fputs($fp,"GET /7.html HTTP/1.0\r\nUser-Agent: GET SEVEN (Mozilla Compatible)\r\n\r\n");
 
  while(!feof($fp))
  {
    $data .= fgets($fp, 1000);
  }
 
  fclose($fp);
 
  $data              = ereg_replace(".*<body>", "", $data);
  $data              = ereg_replace("</body>.*", ",", $data);
  $data_array        = explode(",",$data);
  $listeners         = $data_array[0];
  $status            = $data_array[1];
  $peak_listeners    = $data_array[2];
  $maximum_listeners = $data_array[3];
  $unique_listeners  = $data_array[4];
  $bitrate           = $data_array[5];
  $track             = $data_array[6];
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Obtener datos de xml

Publicado por Vega (3 intervenciones) el 08/04/2014 07:06:30
Muchas gracias amigo, lamentablemente tampoco me funciono, me parece que alguno de los dos servidores está bloqueando la conexión remota, de igual manera muchas gracias, con este me basaré en hacer unas radio stats en un futuro, gracias por la recomendación :)

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar