Ver Mensaje Individual
  #1 (permalink)  
Antiguo 13/08/2009, 15:56
Avatar de Payin
Payin
 
Fecha de Ingreso: mayo-2007
Mensajes: 92
Antigüedad: 17 años
Puntos: 0
[SOLUCIONADO] Extraer texto de Cadenas sacadas de XML

Hola comunidad, he estado rompiendome la cabeza, pero no he logrado arreglar este problemilla. Yo bajo informacion de un RSS de Música, y en el TAG <DESCRIPCION> me viene algo como esto (especificamente esto)

Código PHP:
<![CDATA[ <img src="http://www.dinamita.com.ar/manager/images/logos/contenidos_132547.jpg" border="0" alt="" /> Es como cuando dijeron que había muertoseñaló el Beatle al comentar una noticia que aseguraba que abandonaría los escenarios después de su próxima gira mundial. ]]> 
Bueno, yo tengo este codigo con estas dos funciones que teoricamente me "sacarian" por separado la imagen y la descripcion

Código PHP:
<?php
require("simplepie.inc");
function 
getCadenaDesc($cadena){
   
$maximo strlen($cadena);
   
$imagenComienzo '/>';
   
$imagenFinal "]]>";
   
$total strpos($cadena,$imagenComienzo);
   
$total2 strpos($cadena,$imagenFinal);
   if (
$total2 === false) {
       echo 
"No se encontro ".$caracter." en la cadena '$mi_cadena'";
        }
   
$total3 = ($maximo $total2);
   
$final substr ($cadena$total+,-$total3);
   return (
$final);
}

function 
getCadenaImagen($cadena){
    
$maximo strlen($cadena);
   
$imagenComienzo '<img';
   
$imagenFinal '/>';
   
$total strpos($cadena,$imagenComienzo);
   
$total2 strpos($cadena,$imagenFinal);
   if (
$total2 === false) {
      echo 
"No se encontro ".$caracter." en la cadena '$mi_cadena'";
     }
  
$total3 = ($maximo $total2 2); //LE RESTO 2 PORQUE ES LA LONGITUD DE LOS CARACTERES DE IMAGENFINAL
  
$final substr ($cadena,$total,-$total3);
   return 
$final;
   }

$path "http://musicaeninternet.com.ar/rss/musica.xml";
$noticias = new SimplePie();
$noticias->set_feed_url($path);
$noticias->init();
$item $noticias->get_item(0); 
echo 
"Titulo: ".$item->get_title()."<br />";
$descripcion $item->get_description();
echo 
"Imagen: ".getCadenaImagen($descripcion)."<br />";
echo 
"Descripcion: ".getCadenaDesc($descripcion)."<br />";
?>
La funcion que saca la Imagen anda bárbaro, pero no sé porqué es que la funcion para sacar el texto no me saca nada. He probado muchas variantes, hasta las ingenuas, pero nada. Si pongo comillas en el "return" de la funcion getCadenaDesc me devuelve la Imagen y la Descripcion.
El problema es que entra en el if y me tira que no encuentra el "/>"(que es donde termina el tag IMG, ahi empezaria la descripcion textual de la noticia) dentro de la cadena que le paso por parametro, pero lo debería de encontrar.
Alguno tiene idea de porqué será?

Muchas gracias!

Última edición por Payin; 14/08/2009 a las 17:36 Razón: Error de tipeo