Foros del Web » Programando para Internet » PHP »

Excepción en SimpleXMLElement!!!

Estas en el tema de Excepción en SimpleXMLElement!!! en el foro de PHP en Foros del Web. Buenas a todos: Estoy intentando leer un par de RSS de un Wordpress y un SMF usando un objeto SimpleXMLElement, pero me salta una excepción, ...
  #1 (permalink)  
Antiguo 16/07/2010, 09:12
 
Fecha de Ingreso: marzo-2008
Mensajes: 207
Antigüedad: 16 años, 1 mes
Puntos: 0
Exclamación Excepción en SimpleXMLElement!!!

Buenas a todos:

Estoy intentando leer un par de RSS de un Wordpress y un SMF usando un objeto SimpleXMLElement, pero me salta una excepción, así que probé a pillar esos RSS desde feedburner (creando previamente dichos feeds en feedburner), pero nada, sigue igual.

Os dejo las santas excepciones:

Código:
PHP Warning: SimpleXMLElement::__construct() [<a href='simplexmlelement.--construct'>simplexmlelement.--construct</a>]: URL file-access is disabled in the server configuration in XXX/functions.php on line 364 

PHP Warning: SimpleXMLElement::__construct(http://feeds.feedburner.com/XXX?format=xml) [<a href='simplexmlelement.--construct'>simplexmlelement.--construct</a>]: failed to open stream: no suitable wrapper could be found in XXX/functions.php on line 364 

PHP Warning: SimpleXMLElement::__construct() [<a href='simplexmlelement.--construct'>simplexmlelement.--construct</a>]: I/O warning : failed to load external entity &quot;http://feeds.feedburner.com/XXX?format=xml&quot; in XXX/functions.php on line 364
Me resulta extrañísimo que no funcione, puesto que el código que utilizo es el mismo que uso en otro servidor para extraer otro feed de feedburner (de otra web) y me funciona perfectamente, lo que me lleva a pensar que quizás sea cosa de la configuración de mi servidor.

¿Qué opinan?

Muchas gracias a todos de antemano.


Un saludo.

PD: He probado a usar, en vez de un objeto SimpleXMLElement, la función simplexml_load_file(), pero tampoco va. No me saltan excepciones, pero no carga ni un sólo dato porque tampoco accede al XML (el log de errores del servidor muestra líneas de errores muy parecidas a las de las excepciones lanzadas con el objeto SimpleXMLElement.

Última edición por Masane; 16/07/2010 a las 09:17
  #2 (permalink)  
Antiguo 16/07/2010, 09:19
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Excepción en SimpleXMLElement!!!

Si traduces el error, te dice que no puedes accesar a ese XML usando el protocolo http, vas a tener que usar algo como cURL para accesar al XML bajarlo a tu script y luego procesarlo usando SimpleXML.

Saludos.
  #3 (permalink)  
Antiguo 16/07/2010, 09:27
 
Fecha de Ingreso: marzo-2008
Mensajes: 207
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Excepción en SimpleXMLElement!!!

¿Y por qué he podido acceder así a otros XML usando el mismo script en otros servidores y en mi servidor no me deja? :S

A parte, si no sé curl, ¿qué otras opciones me quedan para leer dichos XML? :( .

Y muchas gracias por contestar tan rápido GatorV ;) .
  #4 (permalink)  
Antiguo 16/07/2010, 09:38
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: Excepción en SimpleXMLElement!!!

El primer error te indica porque no puedes acceder. Lo que sucede es que allow_url_fopen esta inhabilitado en el php.ini de ese servidor donde estás tratando de usar ese código. Por lo que no puede conectarse a ese servidor usando ese método. Te recomiendo que mires la parte donde contiene varios aportes en este foro, hay dos temas (de una persona excepcional ) que te ayudarán a trabajar lo que quieres uno con cURL y otras formas y el otro tema a trabajar con XML (en tu caso es más bien la parte de como cargar al servidor la información del XML desde otro servidor).
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #5 (permalink)  
Antiguo 16/07/2010, 09:41
 
Fecha de Ingreso: marzo-2008
Mensajes: 207
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Excepción en SimpleXMLElement!!!

Cita:
Iniciado por abimaelrc Ver Mensaje
El primer error te indica porque no puedes acceder. Lo que sucede es que allow_url_fopen esta inhabilitado en el php.ini de ese servidor que estás tratando de usar ese código. Por lo que no puede conectarse a ese servidor usando ese método. Te recomiendo que mires la parte donde contiene varios aportes en este foro, hay dos temas que te ayudarán a trabajar lo que quieres uno con cURL y otras formas y el otro tema a trabajar con XML (en tu caso es más bien la parte de como cargar al servidor la información del XML desde otro servidor).

Oh!, así que era por el allow_url_fopen. Había revisado el phpinfo buscando algo que me deshabilitara el poder acceder a xml externos, pero no pensé que fuera justo esa variable. La tengo Off, así que le pediré al soporte técnico de mi hosting que me lo active, y si no acceden, pues entonces al menos tengo los consejos que me habéis dado.

Muchas gracias a todos por ayudarme, así se hace menos pesado el trabajo ;) .


Un saludo.
  #6 (permalink)  
Antiguo 16/07/2010, 09:44
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: Excepción en SimpleXMLElement!!!

Te falto copiar la parte (de una persona excepcional )
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #7 (permalink)  
Antiguo 17/07/2010, 07:57
 
Fecha de Ingreso: marzo-2008
Mensajes: 207
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Excepción en SimpleXMLElement!!!

Vale, en mi hosting dicen que no, que nanai de la china, que por seguridad eso no se toca -.- ...

He estado haciendo pruebas con curl, hasta encontré la manera de copiar los RSS externos a unos xml alojados en mi propio server, pero ahora, curiosamente, usando la clase SimpleXMLElement que supuestamente debería funcionar (y que no lanza ni una sola excepción, por lo que entenderé que funcionar, funciona) no carga nada :S ...

Esta es la clase que uso:

Código PHP:
Ver original
  1. <?php
  2.   function getWordpressRSS($url, $web, $links)
  3.   {
  4.     $xml = TEMPLATE_PATH."/tmp/rss-".$web.".xml";
  5.    
  6.     try
  7.     {
  8.       if (getExternalRSS($url, $xml))
  9.       {
  10.         $feed = new SimpleXMLElement($xml, null, true);
  11.  
  12.         $cont = 0;
  13.    
  14.         for ($cont = 0; $cont < $links; $cont++)
  15.         {
  16.           $post = $feed->item[$cont];
  17.  
  18.           echo "<li>
  19.                     <a title='".$post->title."' href='".$post->link."'>
  20.                        [".fechaRSS($post->pubDate)."] ".reducir($post->title)."
  21.                     </a>
  22.                   </li>";
  23.         }      
  24.       }
  25.     }
  26.     catch(Exception $Exception)
  27.     {
  28.       die("Error en el archivo /includes/template/functions.php, en la funci&oacute;n getWordpressRSS().");
  29.     }
  30.   }  
  31. ?>

Y los archivos existen, porque puedo acceder a ellos y sus variables se llaman tal y como deben, así que debería de poder acceder a ellas y mostrarlas, ¿no? Pues no carga nada ¬¬ ... Es como si $post no recogiera datos.

¿Alguna idea? :S ...

Última edición por Masane; 17/07/2010 a las 08:05
  #8 (permalink)  
Antiguo 17/07/2010, 13:59
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Excepción en SimpleXMLElement!!!

definitivamente deberías usar alguna librería especializada para lees los RSS:

- MagpieRSS
- SimplePie
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #9 (permalink)  
Antiguo 19/07/2010, 14:36
 
Fecha de Ingreso: marzo-2008
Mensajes: 207
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Excepción en SimpleXMLElement!!!

Cita:
Iniciado por pateketrueke Ver Mensaje
definitivamente deberías usar alguna librería especializada para lees los RSS:

- MagpieRSS
- SimplePie

Al final usé la MagpieRSS y me va muy bien, no da ni un problema .

Muchas gracias a todos por vuestra ayuda ;) .

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:23.