Foros del Web » Programando para Internet » PHP »

rss con php & mysql

Estas en el tema de rss con php & mysql en el foro de PHP en Foros del Web. Hola a todos, donde puedo encontrar un codigo para hacer rss con php & mysql, he probados varios y no funcionan me dan una mano ...
  #1 (permalink)  
Antiguo 30/09/2007, 19:51
Avatar de jose mario  
Fecha de Ingreso: abril-2007
Mensajes: 165
Antigüedad: 17 años
Puntos: 0
Mensaje rss con php & mysql

Hola a todos, donde puedo encontrar un codigo para hacer rss con php & mysql, he probados varios y no funcionan me dan una mano se los agradecere mucho, gracias de ante mano....
  #2 (permalink)  
Antiguo 01/10/2007, 03:26
 
Fecha de Ingreso: octubre-2007
Ubicación: agua dulce, veracruz
Mensajes: 22
Antigüedad: 16 años, 6 meses
Puntos: 1
Re: rss con php & mysql

seria util que nos mostraras la estructura de la tabla dodne alojas la informacion que quieres convertir en feed y como son tus urls.

te pondre la manera en la que yo lo hago y se me hace la mas simple de todas.

Código PHP:
<?


function crear_rss()
{

cargar_datos_pajina(); 
/*aqui saco la informacion de la base de datos, como no quiero hace run rss feed enorme, solo voy a sacar
5 posts, que son los 5 post que se meutran en elindex de mi blog y la cantitad de pajinas esta en  $pajinacion_index
*/
    
global $titulo_blog$pajinacion_index$descripcion_blog$bloger_blog$url_blog;


/*aqui hacemos la parte pincipal del feed, especificamos que web es y que squma estamos usando =verison 2.0*/
echo'<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
<title>'
;echo"$titulo_blog";echo'</title>
<link>'
;echo"$url_blog/index.php";echo'</link>
<description>'
;echo"$descripcion_blog";echo'</description>
<language>es-mx</language>'
;echo"\n";
    


/*
yo hago las urls de mis archivos apartit de la fecha en la que lospostie, la cual esta estipualda en unix time
de ahi con la funcion date, construyo la url del post.(mis urls son dinamicas, pero son amigables a los buscadores)
*/



    
conectar_base_de_datos();
    
$query="SELECT * FROM archivo  order by id desc";
    
$result=mysql_query($query);
    
$num=mysql_num_rows($result);
    
mysql_close();
    
    
$control=0;
    while(
$control <> $pajinacion_index)
        {
        
$archivo_id=@mysql_result($result,$control,"id");
        if(empty(
$archivo_id)){ break; } 
        
        
$archivo_fecha=mysql_result($result,$control,"fecha");
        
$archivo_titulo=mysql_result($result,$control,"titulo");
        
$archivo_contenido=mysql_result($result,$control,"contenido");

        
$fecha=$archivo_fecha;
$ano=date("Y",$fecha);
        
$ano_corto=date("y",$fecha);
        
$mes=date("n",$fecha);
        
$mes_s=date("m",$fecha);
        
$nombre_meses=Array    (=> "enero",
                     
=> "febrero",
                     
=> "marzo",
                     
=> "abril",
                     
=> "mayo",
                     
=> "junio",
                     
=> "julio",
                     
=> "agosto",
                     
=> "septiembre",
                     
10 =>"octubre",
                     
11 => "noviembre",
                     
12 => "diciembre");
        
$mes_nombre=$nombre_meses[$mes];
        
$dia=date("d",$fecha);
        
$hora=date("g",$fecha);
        
$minutos=date("i",$fecha);
        
$meridiano=date("A",$fecha);
        
$url_archivo ="$url_blog/archivos/$ano/$mes_nombre/$dia/$archivo_id.html";

$fecha_archivo=date("D, d M Y H:i:s O",$archivo_fecha);/*si usas php 5, puedes usar " date(DATE_RFC822,$archivo_fecha);" si no asi esta bien, esta forma funciona en php 4 y 5 :)*/
echo'<item>
<title>'
;echo"$archivo_titulo";echo'</title>
<description>'
;echo"$archivo_contenido";echo'</description>
<pubDate>'
;echo"$fecha_archivo";echo'</pubDate>
<link>'
;echo"$url_archivo";echo'</link>
<guid>'
;echo"$url_archivo";echo'</guid>
</item>'
;echo"\n";
    
$control++;

        }
 echo
'</channel></rss>';

}

?>

ahora, dependiendo de si tu host te permite crear .htaccess puedes hacer dos cosas
1.- crear un archivo llamado rss.xml y poner esto:
Código PHP:
<?
header
('Content-Type: application/xml');//le dice al browser/navegador que es un archivo xml, si no pones eso, el server mandara un header con Content-Type: application/x-httpd-php 
function crear_rss()
{

cargar_datos_pajina(); 
/*aqui saco la informacion de la base de datos, como no quiero hace run rss feed enorme, solo voy a sacar
5 posts, que son los 5 post que se meutran en elindex de mi blog y la cantitad de pajinas esta en  $pajinacion_index
*/
    
global $titulo_blog$pajinacion_index$descripcion_blog$bloger_blog$url_blog;


/*aqui hacemos la parte pincipal del feed, especificamos que web es y que squma estamos usando =verison 2.0*/
echo'<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
<title>'
;echo"$titulo_blog";echo'</title>
<link>'
;echo"$url_blog/index.php";echo'</link>
<description>'
;echo"$descripcion_blog";echo'</description>
<language>es-mx</language>'
;echo"\n";
    


/*
yo hago las urls de mis archivos apartit de la fecha en la que lospostie, la cual esta estipualda en unix time
de ahi con la funcion date, construyo la url del post.(mis urls son dinamicas, pero son amigables a los buscadores)
*/



    
conectar_base_de_datos();
    
$query="SELECT * FROM archivo  order by id desc";
    
$result=mysql_query($query);
    
$num=mysql_num_rows($result);
    
mysql_close();
    
    
$control=0;
    while(
$control <> $pajinacion_index)
        {
        
$archivo_id=@mysql_result($result,$control,"id");
        if(empty(
$archivo_id)){ break; } 
        
        
$archivo_fecha=mysql_result($result,$control,"fecha");
        
$archivo_titulo=mysql_result($result,$control,"titulo");
        
$archivo_contenido=mysql_result($result,$control,"contenido");

        
$fecha=$archivo_fecha;
$ano=date("Y",$fecha);
        
$ano_corto=date("y",$fecha);
        
$mes=date("n",$fecha);
        
$mes_s=date("m",$fecha);
        
$nombre_meses=Array    (=> "enero",
                     
=> "febrero",
                     
=> "marzo",
                     
=> "abril",
                     
=> "mayo",
                     
=> "junio",
                     
=> "julio",
                     
=> "agosto",
                     
=> "septiembre",
                     
10 =>"octubre",
                     
11 => "noviembre",
                     
12 => "diciembre");
        
$mes_nombre=$nombre_meses[$mes];
        
$dia=date("d",$fecha);
        
$hora=date("g",$fecha);
        
$minutos=date("i",$fecha);
        
$meridiano=date("A",$fecha);
        
$url_archivo ="$url_blog/archivos/$ano/$mes_nombre/$dia/$archivo_id.html";

$fecha_archivo=date("D, d M Y H:i:s O",$archivo_fecha);/*si usas php 5, puedes usar " date(DATE_RFC822,$archivo_fecha);" si no asi esta bien, esta forma funciona en php 4 y 5 :)*/
echo'<item>
<title>'
;echo"$archivo_titulo";echo'</title>
<description>'
;echo"$archivo_contenido";echo'</description>
<pubDate>'
;echo"$fecha_archivo";echo'</pubDate>
<link>'
;echo"$url_archivo";echo'</link>
<guid>'
;echo"$url_archivo";echo'</guid>
</item>'
;echo"\n";
    
$control++;

        }
 echo
'</channel></rss>';

}
crear_rss();

  
?>
y crear otro llamado .htaccess y poner esto:
Código:
<Files rss.xml>  
 ForceType application/x-httpd-php  
</Files>
eso le dira al server que ejecute el archivo rss.xml como si fuera un arhcivo php


2.- si no puedes crear archivos .htaccess tonces crea un arhcivo llamado rss.php y pon lo siguiente

Código PHP:
<?
header
('Content-Type: application/xml');//le dice al browser/navegador que es un archivo xml, si no pones eso, el server mandara un header con Content-Type: application/x-httpd-php 
function crear_rss()
{

cargar_datos_pajina(); 
/*aqui saco la informacion de la base de datos, como no quiero hace run rss feed enorme, solo voy a sacar
5 posts, que son los 5 post que se meutran en elindex de mi blog y la cantitad de pajinas esta en  $pajinacion_index
*/
    
global $titulo_blog$pajinacion_index$descripcion_blog$bloger_blog$url_blog;


/*aqui hacemos la parte pincipal del feed, especificamos que web es y que squma estamos usando =verison 2.0*/
echo'<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
<title>'
;echo"$titulo_blog";echo'</title>
<link>'
;echo"$url_blog/index.php";echo'</link>
<description>'
;echo"$descripcion_blog";echo'</description>
<language>es-mx</language>'
;echo"\n";
    


/*
yo hago las urls de mis archivos apartit de la fecha en la que lospostie, la cual esta estipualda en unix time
de ahi con la funcion date, construyo la url del post.(mis urls son dinamicas, pero son amigables a los buscadores)
*/



    
conectar_base_de_datos();
    
$query="SELECT * FROM archivo  order by id desc";
    
$result=mysql_query($query);
    
$num=mysql_num_rows($result);
    
mysql_close();
    
    
$control=0;
    while(
$control <> $pajinacion_index)
        {
        
$archivo_id=@mysql_result($result,$control,"id");
        if(empty(
$archivo_id)){ break; } 
        
        
$archivo_fecha=mysql_result($result,$control,"fecha");
        
$archivo_titulo=mysql_result($result,$control,"titulo");
        
$archivo_contenido=mysql_result($result,$control,"contenido");

        
$fecha=$archivo_fecha;
$ano=date("Y",$fecha);
        
$ano_corto=date("y",$fecha);
        
$mes=date("n",$fecha);
        
$mes_s=date("m",$fecha);
        
$nombre_meses=Array    (=> "enero",
                     
=> "febrero",
                     
=> "marzo",
                     
=> "abril",
                     
=> "mayo",
                     
=> "junio",
                     
=> "julio",
                     
=> "agosto",
                     
=> "septiembre",
                     
10 =>"octubre",
                     
11 => "noviembre",
                     
12 => "diciembre");
        
$mes_nombre=$nombre_meses[$mes];
        
$dia=date("d",$fecha);
        
$hora=date("g",$fecha);
        
$minutos=date("i",$fecha);
        
$meridiano=date("A",$fecha);
        
$url_archivo ="$url_blog/archivos/$ano/$mes_nombre/$dia/$archivo_id.html";

$fecha_archivo=date("D, d M Y H:i:s O",$archivo_fecha);/*si usas php 5, puedes usar " date(DATE_RFC822,$archivo_fecha);" si no asi esta bien, esta forma funciona en php 4 y 5 :)*/
echo'<item>
<title>'
;echo"$archivo_titulo";echo'</title>
<description>'
;echo"$archivo_contenido";echo'</description>
<pubDate>'
;echo"$fecha_archivo";echo'</pubDate>
<link>'
;echo"$url_archivo";echo'</link>
<guid>'
;echo"$url_archivo";echo'</guid>
</item>'
;echo"\n";
    
$control++;

        }
 echo
'</channel></rss>';

}
crear_rss();

  
?>

notaras que es lo mismo, pero la extension del archivo es diferente^^


espero te sirva, cualquier duda pregunta ^^
  #3 (permalink)  
Antiguo 01/10/2007, 17:26
Avatar de jose mario  
Fecha de Ingreso: abril-2007
Mensajes: 165
Antigüedad: 17 años
Puntos: 0
Re: rss con php & mysql

Hey gracias Kero - dono lo voy a probar, mi direccion es www . makepixels . com la direcion donde pondre el feed rss es www . makepixels . com /rss .php o xml si me permite crear htaccess gracias saludos desde el salvador
  #4 (permalink)  
Antiguo 01/10/2007, 21:39
Avatar de jose mario  
Fecha de Ingreso: abril-2007
Mensajes: 165
Antigüedad: 17 años
Puntos: 0
Re: rss con php & mysql

Hola como estasmos lo probe y me sale este error
*****************
Las siguientes etiquetas no estaban cerradas: link.
, línea: 0, carácter: 0

****************

ya le busque y nada

id_feed int(5) auto_increment
titulo varchar(100)
des text
fecha date

esos son mis campos espere te sirvan para que me ayudes...
  #5 (permalink)  
Antiguo 03/12/2009, 22:02
 
Fecha de Ingreso: diciembre-2009
Mensajes: 3
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: rss con php & mysql

Hola el ejemplo que usa kero-dono esta genial, yo apenas publique en mi blog un tip hablando del tema, te dejo el link para que lo revises y espero y te sirva.

Como soy usuario nuevo no me deja poner las ligas directas pero te lo dejo:

lachabela.wordpress.com/2009/12/02/como-crear-un-feed-rss-con-mysql-y-php/

Saludos
  #6 (permalink)  
Antiguo 04/12/2009, 00:32
Avatar de chalchis  
Fecha de Ingreso: julio-2003
Mensajes: 1.773
Antigüedad: 20 años, 9 meses
Puntos: 21
Sonrisa Respuesta: rss con php & mysql

Podrian usar este script amigos

http://blog.unijimpe.net/crear-un-rss-en-php/


saludos
__________________
gerardo
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 14:50.