Foros del Web » Programando para Internet » PHP »

Problema al tratar vídeos de Youtube en RSS

Estas en el tema de Problema al tratar vídeos de Youtube en RSS en el foro de PHP en Foros del Web. Hola, Tengo un script en PHP para generar un feed RSS. Después de varias horas y probar varias combinaciones y validadores parece que tengo un ...
  #1 (permalink)  
Antiguo 14/10/2009, 04:39
Avatar de koaxial  
Fecha de Ingreso: agosto-2001
Mensajes: 119
Antigüedad: 22 años, 7 meses
Puntos: 0
Problema al tratar vídeos de Youtube en RSS

Hola,

Tengo un script en PHP para generar un feed RSS. Después de varias horas y probar varias combinaciones y validadores parece que tengo un problema al insertar etiquetas OBJECT que necesito para poder mostrar vídeos de Youtube en la descripción de cada elemento que muestro.
He visto varios RSS que lo hacen y la verdad es que no encuentro diferencia...

Este es el código de mi script:
Código PHP:
<?php
include("classes/auto_load.php");
include(
"classes/Fecha.php");
include(
"funciones/fXML.php");

//Conexion a la base de datos 
$conex=new Bdd();
$conex->conectar();

$fechas=new Fech();

header('Content-Type: text/xml');
echo 
'<?xml version="1.0" encoding="utf-8"?>'

//Hacemos la consulta y ordeno por fecha
$conex->consultar("SELECT * FROM noticias ORDER BY fecha Desc");

echo 
'<rss version="2.0">
<channel>
<title>Web de Jorge - jorgefm.com</title>
<link>http://www.jorgefm.com/</link>
<language>es</language>
<description>Últimas noticias de la web personal de Jorge Manuel Fernandez Mendoza - www.jorgefm.com</description>
<generator>Jorge M. Fernandez</generator>'
;
while(
$filamysql_fetch_assoc($conex->rs)){
    
extract($fila);
    
//$descripcion=strip_tags($texto);        
    
$descripcion=trim($descripcion);
    
$descripcion=formatoXML($texto);    
    
//$descripcion=substr($descripcion,0,300)."[...]";
    
$texto=trim($texto);        
    echo 
'<item><title><![CDATA['.$titulo.']]></title>
    <link>http://www.jorgefm.com/index.php#noticia_'
.$id.'</link>
    <comments>http://www.jorgefm.com/index.php#noticia_'
.$id.'</comments>
    <pubDate>'
.$fechas->formatoRFC($fecha).'</pubDate>
    <category>Noticias</category>
    <guid>http://www.jorgefm.com/index.php#noticia_'
.$id.'</guid>
    <description><![CDATA['
.$descripcion.']]></description>    
    <content:encoded><![CDATA['
.$texto.']]></content:encoded>    
    </item>'
;
}
    echo 
'</channel></rss>';
    
$conex->cerrar();
    
//    <content:encoded><![CDATA['.$texto.']]></content:encoded>
?>
Es concretamente la línea <content:encoded> la que me genera el problema, pues si la elimino el RSS funciona, pero claro, no me muestra los vídeos youtube que tengo en la descripción.

¿Alguna idea?

Gracias.
  #2 (permalink)  
Antiguo 14/10/2009, 05:16
 
Fecha de Ingreso: abril-2008
Mensajes: 453
Antigüedad: 16 años
Puntos: 16
Respuesta: Problema al tratar vídeos de Youtube en RSS

hola como te va, prueba con algo asi


Código php:
Ver original
  1. <content:encoded><![CDATA[<?php echo ereg_replace("<object width=\"([^\"]+)\" height=\"([^\"]+)\" type=\"[^\"]+\" data=\"http://www.youtube.com/v/([^\"]+)\"[\n\r]*[^<]*<param [^>]+>[^<]*<param[^>]+>[^>]*</object>", "<object width=\"\\1\" height=\"\\2\"><param name=\"movie\" value=\"http://www.youtube.com/v/\\3\"></param><param name=\"wmode\" value=\"transparent\"></param><embed src=\"http://www.youtube.com/v/\\3\" type=\"application/x-shockwave-flash\" wmode=\"transparent\" width=\"\\1\" height=\"\\2\"></embed></object>", $texto); ?>]]></content:encoded>

lo que hace es reemplazar el objet data por parametros de una forma valida
  #3 (permalink)  
Antiguo 14/10/2009, 14:46
Avatar de koaxial  
Fecha de Ingreso: agosto-2001
Mensajes: 119
Antigüedad: 22 años, 7 meses
Puntos: 0
Respuesta: Problema al tratar vídeos de Youtube en RSS

Nada, sigue igual. Cuando pruebo en IExplorer me muestra este mensaje:

Referencia a un prefijo de espacio de nombres no declarado: 'content'.
, línea: 14, carácter: 19

<content:encoded><![CDATA[Me encanta esta campaña de publicidad...
  #4 (permalink)  
Antiguo 14/10/2009, 15:07
Avatar de koaxial  
Fecha de Ingreso: agosto-2001
Mensajes: 119
Antigüedad: 22 años, 7 meses
Puntos: 0
Respuesta: Problema al tratar vídeos de Youtube en RSS

He añadido la siguiente línea en el XML del RSS y ahora al menos no da error, pero sigue sin mostrar los datos dentro de la etiqueta <content:encoded>

Código PHP:
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" 
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 21:38.