Foros del Web » Programando para Internet » PHP »

PHP que genera un feed, añadir contenido a los titulos

Estas en el tema de PHP que genera un feed, añadir contenido a los titulos en el foro de PHP en Foros del Web. Buenas, haber si alguien me puede ayudar en este asunto... Es sencillo, pero llevo investigando y problando y no hay manera. Tengo un archivo .PHP ...
  #1 (permalink)  
Antiguo 02/08/2012, 09:52
 
Fecha de Ingreso: julio-2010
Mensajes: 166
Antigüedad: 9 años, 2 meses
Puntos: 0
Pregunta PHP que genera un feed, añadir contenido a los titulos

Buenas, haber si alguien me puede ayudar en este asunto...
Es sencillo, pero llevo investigando y problando y no hay manera.

Tengo un archivo .PHP que se encarga de recojer las entradas publicadas en un feed cualquiera y acorto dichos titulos limitandolos por el principio y por el final del titulo, quedando así solo lo que me interesa del feed.

Dejo el código para que lo veáis directamente:
Código:
<?php
$doc = new DOMDocument('1.0', 'utf-8');
 
//Creamos los elementos que va a tener el RSS
$rss = $doc->createElement('rss');
$channel = $doc->createElement('channel');
$c_title = $doc->createElement('title', 'el sitio');
$c_link = $doc->createElement('link', 'http://www.web.com');
$c_descripcion = $doc->createElement('description', 'descripcion del sitio web');
$c_language = $doc->createElement('language', 'es');
 
//Agregamos todos los hijos
$doc->appendChild($rss);
$rss->appendChild($channel);
$channel->appendChild($c_title);
$channel->appendChild($c_link);
$channel->appendChild($c_descripcion);
$channel->appendChild($c_language);
 
//Agregamos un atributo al rss
$rss->setAttribute('version', '2.0');
 
//Esto es lo que tienes
$xml = new SimpleXMLElement('http://www.web.com/direcciondelfeedquecojo.xml', null, true);
foreach ($xml->channel->item as $titulo) {
    $eqs = explode('medio', $titulo->title);
    $eqs1 = explode('Primerapalabra ', $eqs[0]);
    $eq1 = $eqs1[1];
    $eq2 = explode(' palabrafinal', $eqs[1]);
    $eq2 = $eq2[0];
    //Agregamos item y un hijo title dinámicamente
    $item = $doc->createElement('item');
    $i_title = $doc->createElement('title', "$eq1 cambio $eq2");
    $item->appendChild($i_title);
    $channel->appendChild($item);
}
 
//Guardamos el rss, manejalo como quieras aqui
$m = fopen('feed.xml', 'w+');
fwrite($m, $doc->saveXML());
fclose($m);
Pongo un ejemplo, para hacerlo entender...
El feed que utilizo que en este caso como indica el codigo sería "http://www.web.com/direcciondelfeedquecojo.xml", se muestra de la siguiente manera (titulos del feed):
  • Primerapalabra 123 medio 456 palabrafinal (titulo 1)
  • Primerapalabra 543 medio 210 palabrafinal (titulo 2)
  • Primerapalabra 432 medio 765 palabrafinal (titulo 3)

Bueno, pues con dicho código creo un archivo aqui "http://miweb.com/feed.xml".

Este archivo se mostraria de la siguiente manera:
  • 123 cambio 456 (titulo 1)
  • 543 cambio 210 (titulo 2)
  • 432 cambio 765 (titulo 3)

Hasta ahí bien y solo la explicación de lo que tengo por ahora.

Vale, pues lo que quiero lograr, es que en vez de generarlo de esta forma donde solo me muestra titulos, poder añadirle contenido a cada uno pero utilizando los: $eq1 y $eq2 como desee.

Es decir:
  • 123 cambio 456 (titulo 1)
    Esto es la entrada de este titulo y muestro $eq1(123) y ahora $eq2(456). (contenido de la primera entrada)
  • 543 cambio 210 (titulo 2)
    Esto es la entrada de este titulo y muestro $eq1(543) y ahora $eq2(210). (contenido de la segunda entrada)
  • 432 cambio 765 (titulo 3)
    Esto es la entrada de este titulo y muestro $eq1(432) y ahora $eq2(765). (contenido de la tercera entrada)

Bueno, eso sería todo.
No se si me he explicado bien, sé que es largo, pero de verdad necesito ayuda con eso y agradezco los que lo lean e intenten ayudar. Soy novato y hago lo que puedo...

Un saludo!!

Última edición por blogdv; 03/08/2012 a las 14:02

Etiquetas: contenidos, creado, feed, titulo, tras
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 05:43.