(no se si deba ir en el foro de PHP o el de XML)
Estoy desarrollando un script en php para leer un XML generado por una aplicacion web, especificamente el xml que genera el servidor shoutcast con los datos de oyentes en linea, temas emitidos, etc.
Para acceder a ese xml se hace por medio de la url: http://LA-IP:PUERTO/admin.cgi?mode=viewxml lo cual salta un cuadro solicitando usuario y contraseña, una ves ingresado esos datos se puede visualizar el contenido del archivo XML.
Para evitar el cuadro de login se agrega en la url la variable "pass=*****" y de esa manera entra directamente.
Bueno, ahora les cuento lo que estoy tratando de hacer.
Estoy haciendo un archivo php que ingrese a la url antes descrita, lea el contenido y lo muestre en una tabla ordenado segun mis necesidades, lamentablemente no me funciona (Estoy usando SIMPLEXML).
Si visualizo directamente el xml en el explorador, lo guardo en mi disco y despues lo leo desde mi script php con simpleXml no tengo problemas, pero cuando intento acceder directamente a el me manda los siguientes mensajes:
Código PHP:
Warning: file_get_contents(http://111.111.111.111:8000/admin.cgi?pass=*****&mode=viewxml) [function.file-get-contents]: failed to open stream: HTTP request failed! ICY 404 Resource Not Found in C:\AppServ\www\test\leer_xml.php on line 13
Warning: Invalid argument supplied for foreach() in C:AppServwwwtestleer_xml.php on line 16
Código PHP:
$file="http://111.111.111.111:8000/admin.cgi?pass=*****&mode=viewxml";
$data = file_get_contents($file);
$xml = simplexml_load_string($data);
...
Lo que hace este script es leerla y mostrarla tal cual... osea muestra la misma estructura del XML de la pagina original
Código PHP:
$scip = "111.111.111.111";
$scport = 8000;
$scpass = "*****";
$scfp = @fsockopen($scip, $scport, &$errno, &$errstr, 10);
if(!$scfp) {
echo $errstr;
}else{
fputs($scfp,"GET /admin.cgi?pass=$scpass&mode=viewxml HTTP/1.0\r\nUser-Agent: SHOUTcast Stats (Mozilla Compatible)\r\n\r\n");
while(!feof($scfp)) {
$page .= fgets($scfp, 1000);
}
$xmlData = substr($page,42);
}
header('Content-Type: text/xml');
echo $xmlData;
Ahora intenté cargar este PHP en el primer script y me manda estos mensajes:
Código PHP:
Warning: simplexml_load_string() [function.simplexml-load-string]: Entity: line 17: parser error : Start tag expected, '<' not found in C:AppServwwwtestleer_xml.php on line 14
Warning: simplexml_load_string() [function.simplexml-load-string]: ?> in C:\AppServ\www\test\leer_xml.php on line 14
Warning: simplexml_load_string() [function.simplexml-load-string]: ^ in C:\AppServ\www\test\leer_xml.php on line 14
La verdad no se o no entiendo que pueda estar pasando, ojalá aguno de ustedes logre darme una mano para dar con el problema.
Ojalá se entienda mi post, cualquier duda estaré aqui para dar mas detalles.
Saludos