PHP - Obtener RSS y acceder a la información

   
Vista:

Obtener RSS y acceder a la información

Publicado por Gonzalo (8 intervenciones) el 22/05/2011 21:34:57
Hola les cuento que estoy tratando de armar un sistema que lea RSS, tengo 2 problemas que quisiera que me ayuden :

1) El sistema luego de poner una palabra clave debería buscar RSS, por ejemplo quiero saber acerca de autos y buscaría RSS que estén relacionados con autos, aquí tengo el primer problema como puedo hacer para buscar rss por keywords?.

2) En segundo lugar me gustaría bajar esta información y almacenarla, cómo puedo manipular la información de cada RSS?

Muchas gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve

Obtener RSS y acceder a la información

Publicado por xve (5515 intervenciones) el 23/05/2011 08:30:47
Hola Gonzalo, aquí te adjunto una función para leer el contenido de un archivo rss y ponerlo dentro de un array.
Una vez tengas el contenido dentro del array, puedes utilizar las funciones típicas para realizar las búsquedas dentro del array.

Este código. lee un rss de noticias para publicar en una web, por eso revisa que la noticia este entre las fechas.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
function read_rss_csq($file)
{
	$arrFeeds = array();
	if(file_exists($file))
	{
		$doc = new DOMDocument();
		$doc->load($file);
		foreach ($doc->getElementsByTagName('item') as $node)
		{
			$itemRSS = array (
				'title' => $node->getElementsByTagName('title')->item(0)->nodeValue,
				'desc' => $node->getElementsByTagName('description')->item(0)->nodeValue,
				'link' => $node->getElementsByTagName('link')->item(0)->nodeValue,
				'date' => $node->getElementsByTagName('pubDate')->item(0)->nodeValue,
				'dateI' => $node->getElementsByTagName('dIniPublicNews')->item(0)->nodeValue,
				'dateF' => $node->getElementsByTagName('dFinPublicNews')->item(0)->nodeValue,
				'id' => $node->getElementsByTagName('IDNewsLang')->item(0)->nodeValue
			);
			# Si estamos entre las fechas de publicacion...
			if(strtotime($this->date_SpanishToEnglish($itemRSS["dateI"]))<time() && strtotime($this->date_SpanishToEnglish($itemRSS["dateF"]))>time())
				array_push($arrFeeds, $itemRSS);
		}
	}
	return $arrFeeds;
}

espero que te sirva
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar