Foros del Web » Programando para Internet » PHP »

Feed en PHP

Estas en el tema de Feed en PHP en el foro de PHP en Foros del Web. Bueno, he estado intentando hacer un lector de feed en PHP y tengo algo muy básico (así se parte ) Bueno, tengo este código hasta ...
  #1 (permalink)  
Antiguo 05/12/2012, 07:18
 
Fecha de Ingreso: julio-2012
Mensajes: 6
Antigüedad: 11 años, 9 meses
Puntos: 0
Feed en PHP

Bueno, he estado intentando hacer un lector de feed en PHP y tengo algo muy básico (así se parte ) Bueno, tengo este código hasta el momento:

Código PHP:
<?php 

$xml
simplexml_load_file("http://www.terra.cl/rss/Controller?channelid=62d28921d14b1310VgnVCM10000098f154d0RCRD&ctName=atomo-noticia&lg=es-cl");
$titulos $xml->xpath('//title');
$codigo $xml->xpath('//description'); 
$fuente $xml->xpath('//link'); 

foreach(
$titulos as $k => $v ){
    echo 
$v.'<br>'.$codigo[$k].'<br><a href="'.$fuente[$k].'"><b>Ir a la entrada</b></a><br><hr>';
}

?>
Mi problema es que no sé identificar los feeds que ya leí...

Si alguien pudiese ayudarme, o darme alguna pista. No me importa partir de cero denuevo.

Saludos Gracias
  #2 (permalink)  
Antiguo 05/12/2012, 08:49
 
Fecha de Ingreso: mayo-2012
Mensajes: 26
Antigüedad: 11 años, 11 meses
Puntos: 2
Respuesta: Feed en PHP

Hola rulix no entendi bien cuando decias de identificar los q leiste, :/

mira te dejo el q uso yo, le puse algunos comentarios para q lo vallas entendiendo,
de todas maneras es solo un ejemplo para seguir, saludos espero te sirva

Código PHP:
Ver original
  1. <?php echo('<?xml version="1.0" encoding="iso-8859-1"?>');?>
  2.  
  3. <!--si tienes cargado los datos en algunos campos en tu bd, puedes listarlos aca tbm-->
  4. <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  5.    <channel>
  6.       <title>[El titulo de tu pagina]</title>
  7.       <link>[El url de tu pagina]</link>
  8.       <description>[Descripcion de tu pagina]</description>
  9.       <language>es-ES</language>
  10.       <pubDate><?php echo date('D, d M Y H:i:s O'); ?></pubDate>
  11.       <generator>[titulo] 2.0</generator>
  12.       <!-- colocas donde se encuentra el rss q estas generando-->
  13.       <atom:link href="http://www.tupagina.com/rss.xml" rel="self" type="application/rss+xml" />
  14.  
  15. <?php
  16.  
  17. //Aquí la conexión o archivo de conexión a nuestra base de datos
  18. //no coloco la funcion por q me imagino q ya lo sabes
  19. $conexion = conectarse();
  20.  
  21. //cambiamos caracteres raros con esta funcion.
  22. function cambiarcaracteres($String)
  23.     {
  24.         $String = str_replace("[äáàâãª]","a",$String);
  25.         $String = str_replace("[ÁÀÂÃÄ]","A",$String);
  26.         $String = str_replace("[ÍÌÎÏ]","I",$String);
  27.         $String = str_replace("[íìîï]","i",$String);
  28.         $String = str_replace("[éèêë]","e",$String);
  29.         $String = str_replace("[ÉÈÊË]","E",$String);
  30.         $String = str_replace("[óòôõöº]","o",$String);
  31.         $String = str_replace("[ÓÒÔÕÖ]","O",$String);
  32.         $String = str_replace("[úùûü]","u",$String);
  33.         $String = str_replace("[ÚÙÛÜ]","U",$String);
  34.         $String = str_replace("[^´`¨~]","",$String);
  35.         $String = str_replace("ç","c",$String);
  36.         $String = str_replace("Ç","C",$String);
  37.         $String = str_replace("ñ","n",$String);
  38.         $String = str_replace("Ñ","N",$String);
  39.         $String = str_replace("Ý","Y",$String);
  40.         $String = str_replace("ý","y",$String);
  41.     return $String;
  42.     }
  43.  
  44. /*********************************************/
  45. //PARA AGREGAR DATOS de la BD
  46. /*********************************************/
  47.  
  48. //Hacemos la consulta y la ordenamos por id para mostrar siempre el último
  49. $resultado=mysql_query("SELECT * FROM mi_tabla ORDER BY id DESC LIMIT 0,25",$conexion);
  50.  
  51. //Creamos un while para poder generar todos los extractos de noticias de nuestro sitio
  52. while($fila = mysql_fetch_array($resultado)){
  53.  
  54. //"Cortaremos" el artículo en 300 caracteres para hacer nuestra descripción
  55. //utilice una funcion q le coloque acortar_texto, tu si ya tienens definido en un campo la descripcion
  56. //solo no hagas caso a esta parte
  57. $descripcion = acortar_texto($fila["contenido"], 300, ' ', '…');
  58.  
  59. //defino la direccion basica osea sera  http://www.mipagina.com/items/
  60. $urlbase= "http://www.mipagina.com/items/";
  61.  
  62. //defino el titulo de la url
  63. $url1 = $fila["titulo"];
  64.  
  65. //y la url final, esto lo tengo asi por q trabajo con urls_amigables
  66. $urlfinal= $urlbase.'a.' . $fila["id"] . '.' . urls_amigables($url1);
  67.  
  68. //acomodo la fecha a mi gusto
  69. $fecha= date('D, d M Y H:i:s O', strtotime($fila["fecha"]));
  70.  
  71. //defino la imagen para mostrar con la descripcion
  72. //como estoy poniendo la urlbase recuerda q la imagen la buscara asi:http://www.mipagina.com/items/seccion1/imagen1.jpg (solo como ejemplo)
  73. $imagen= '<img src="'.$urlbase.'seccion1/'.$fila["image"].'" height="100" border="0" align="left"/>';
  74.  
  75. //titulo del canal
  76. $titulofinal = utf8_decode($fila["titulo"]);
  77.  
  78. //descripcion del canal
  79. $descripcion2 = utf8_decode($descripcion);
  80.  
  81. //ahora listo cada canal
  82. echo '
  83.     <item>
  84.     <title><![CDATA['.$titulofinal.']]></title>
  85.     <link>' . $urlfinal . '</link>
  86.     <pubDate>'.$fecha.'</pubDate>
  87.     <category><![CDATA['.$fila["tipo_doc"].']]></category>
  88.     <description><![CDATA['.$imagen.' '.$descripcion2.']]></description>
  89.     <guid isPermaLink="true"><![CDATA[' . $urlfinal . ']]></guid>
  90.     </item>
  91. ';
  92.    
  93. }//cerramos el while
  94.  
  95. mysql_free_result($resultado);
  96. mysql_close($conexion);
  97. ?>
  98.    </channel>
  99. </rss>
  #3 (permalink)  
Antiguo 05/12/2012, 11:59
 
Fecha de Ingreso: julio-2012
Mensajes: 6
Antigüedad: 11 años, 9 meses
Puntos: 0
Respuesta: Feed en PHP

Muchas gracias markos22, y con lo de identificar los que ya lei, me refiero a que si ya lei una entrada me gustaría marcarla como leída para no volver a leerla.

Voy a analizar tu código y te aviso si me funcionó

Saludos :)

Igualmente recibo más sugerencias :)
  #4 (permalink)  
Antiguo 05/12/2012, 15:33
 
Fecha de Ingreso: mayo-2012
Mensajes: 26
Antigüedad: 11 años, 11 meses
Puntos: 2
Respuesta: Feed en PHP

ahh ok ahora entendi, lo que puedes hacer es crear un campo INT(1)-default "0" con nombre "leido" y solamente cuando cargas el script del item UPDATE ese campo a "1"(q seria leido) y "0" (cero seria el default como no leido).

saludos espero te halla servido,
  #5 (permalink)  
Antiguo 07/12/2012, 09:31
 
Fecha de Ingreso: julio-2012
Mensajes: 6
Antigüedad: 11 años, 9 meses
Puntos: 0
Respuesta: Feed en PHP

Gracias amigo ;) lo voy a poner en práctica ;)

SAludos

Etiquetas: feed
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:30.