I wrote a codeigniter library through which you can retrieve the rss feeds from xml file
Add the below code in Rss.php file and save the file in application library folder ,
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
/**
* CodeIgniter
*
* An open source application development framework for PHP 4.3.2 or newer
*
* @package CodeIgniter
* @author Pradeep Kumar
* @copyright Copyright (c) 2009, hyderabad, Inc.
* @license http://tech-pundits.com/license.html
* @link http://tech-pundits.com
* @since Version 1.0
* @filesource
*/
// ------------------------------------------------------------------------
/**
* Rss Class
*
* @package CodeIgniter
* @subpackage Libraries
* @category Rss Parser
* @author Pradeep Kumar
*/
class Rss {
public $url = ""; // saves the rss feed url
private $aFiledata = ""; // saves the file data in array format
private $sFiledata = "";
private $item = "";
private $entry = "";
private $title = "";
private $link = "";
private $data = "";
private $description = "";
private $date = "";
private $date_gmt = "";
private $image = "";
private $result;
/**
* @return unknown
*/
public function getAFiledata() {
return $this->aFiledata;
}
/**
* @return unknown
*/
public function getEntry() {
return $this->entry;
}
/**
* @return unknown
*/
public function getItem() {
return $this->item;
}
/**
* @return unknown
*/
public function getSFiledata() {
return $this->sFiledata;
}
/**
* @return unknown
*/
public function getTitle() {
return $this->title;
}
/**
* @return unknown
*/
public function getUrl() {
return $this->url;
}
/**
* @return unknown
*/
public function getData() {
return $this->data;
}
/**
* @return unknown
*/
public function getDescription() {
return $this->description;
}
/**
* @return unknown
*/
public function getDate() {
return $this->date;
}
/**
* @return unknown
*/
public function getDate_gmt() {
return $this->date_gmt;
}
/**
* @return unknown
*/
public function getImage() {
return $this->image;
}
/**
* @return unknown
*/
public function getResult() {
return $this->result;
}
/**
* @param unknown_type $result
*/
public function setResult($result) {
$this->result = $result;
}
/**
* @param unknown_type $image
*/
public function setImage($image) {
$this->image = $image;
}
/**
* @param unknown_type $date_gmt
*/
public function setDate_gmt($date_gmt) {
$this->date_gmt = $date_gmt;
}
/**
* @return unknown
*/
public function getLink() {
return $this->link;
}
/**
* @param unknown_type $link
*/
public function setLink($link) {
$this->link = $link;
}
/**
* @param unknown_type $date
*/
public function setDate($date) {
$this->date = $date;
}
/**
* @param unknown_type $data
*/
public function setData($data) {
$this->data = $data;
}
/**
* @param unknown_type $description
*/
public function setDescription($description) {
$this->description = $description;
}
/**
* @param unknown_type $aFiledata
*/
public function setAFiledata($aFiledata) {
$this->aFiledata = $aFiledata;
}
/**
* @param unknown_type $Entry
*/
public function setEntry($entry) {
$this->entry = $entry;
}
/**
* @param unknown_type $Item
*/
public function setItem($item) {
$this->item = $item;
}
/**
* @param unknown_type $sFiledata
*/
public function setSFiledata($sFiledata) {
$this->sFiledata = $sFiledata;
}
/**
* @param unknown_type $Title
*/
public function setTitle($title) {
$this->title = $title;
}
/**
* @param unknown_type $Url
*/
public function setUrl($url) {
$this->url = $url;
}
/**
* Constructor
*
* @access public
* @param array initialization parameters
*/
function Rss($params = array())
{
if (count($params) > 0)
{
$this->initialize($params);
}
log_message("debug", "Rss Class Initialized");
}
// --------------------------------------------------------------------
/**
* Initialize Preferences
*
* @access public
* @param array initialization parameters
* @return void
*/
function initialize($params = array())
{
if (count($params) > 0)
{
foreach ($params as $key => $val)
{
if (isset($this->$key))
{
$this->$key = $val;
}
}
}
}
function getRss()
{
return $this->run();
}
function run()
{
$this->setAFiledata(file($this->getUrl()));
$this->setSFiledata(implode("", $this->getAFiledata()));
$this->setSFiledata(str_replace(array ("\r\n", "\r"), "\n", $this->getSFiledata()));
preg_match_all("|<item[^>]*>(.*?)</item>|is", $this->getSFiledata(), $this->item);
$items = $this->getItem();
$this->setItem($items[0]);
$this->setData("<table>");
$this->result = array();
if(empty($this->item))
{
preg_match_all("|<entry[^>]*>(.*?)</entry>|is", $this->getSFiledata(), $this->item);
$items = $this->getItem();
$this->setItem($items[0]);
$this->setData("<table>");
$this->result = array();
}
foreach ($this->getItem() as $item)
{
preg_match("|<title[^>]*>(.*?)</title>|is", $item, $this->title);
$this->setTitle(strip_tags(str_replace(array("<![CDATA[', ']]>"), array("",""), trim($this->title[1]))));
preg_match("|<pubdate[^>]*>(.*?)</pubdate>|is", $item, $this->date_gmt);
if ($this->date_gmt) {
$this->setDate_gmt(strtotime($this->date_gmt[1]));
} else {
preg_match("|<dc:date[^>]*>(.*?)</dc:date>|is", $item, $this->date_gmt);
if(isset($this->date_gmt[1]))
{
$this->setDate_gmt(preg_replace("|([-+])([0-9]+):([0-9]+)$|", "\1\2\3", $this->date_gmt[1]));
$this->setDate_gmt(str_replace("T", " ", $this->date_gmt));
$this->setDate_gmt(strtotime($this->date_gmt));
}
}
if($this->getDate_gmt())
{
$this->setDate_gmt(gmdate("Y-m-d H:i:s", $this->getDate_gmt()));
$this->setDate($this->getDate_gmt());
$this->getDate();
}
preg_match('|<media:content url="(.*?)" />|is', $item, $this->image);
preg_match("|<media:text[^>]*>(.*?)</media:text>|is", $item, $this->image);
$sarr = array("&nbsp;","#60;",">","<");
$repl = array("","<",">","<");
if(isset($this->image[1]))
{
$this->image = str_replace($sarr,$repl,$this->image[1]);
preg_match('|<img[^>]*src="(.*?)"[^>]*/>|is', $this->image, $this->image);
$this->setImage($this->image[1]);
}
else
$this->image = "";
preg_match("|<description[^>]*>(.*?)</description>|is", $item, $this->description);
if($this->getDescription())
{
$this->setDescription(str_replace(array("<![CDATA[', ']]>"), "", trim($this->description[1])));
$this->setDescription(str_replace($sarr,$repl,$this->description));
}
else
{
preg_match("|<summary[^>]*>(.*?)</summary>|is", $item, $this->description);
if($this->getDescription())
{
$this->setDescription(str_replace(array("<![CDATA[', ']]>"), "", trim($this->description[1])));
$this->setDescription(str_replace($sarr,$repl,$this->description));
}
else
$this->setDescription("");
}
preg_match("|<link[^>]*>(.*?)</link>|is", $item, $this->link);
if(!empty($this->link))
{
if(eregi("<media",$this->link[1]))
{
$img ="";
preg_match("|<media:thumbnail[^>]*>(.*?)</media:thumbnail>|is", $item, $img);
preg_match('|<link rel="alternate"[^>]* href="(.*?)">|is', $item, $this->link);
$this->setDescription($img[1].$this->getDescription());
}
$this->setLink(str_replace(array("<![CDATA[', ']]>",'"/>'), "", trim(strip_tags($this->link[1]))));
$this->link;
}
else
{
preg_match('|<link rel="alternate"[^>]* href="(.*?)"/>|is', $item, $this->link);
$this->setLink(str_replace(array('<![CDATA[', ']]>','"/>'), '', trim(strip_tags($this->link[1]))));
$this->link;
}
$this->data .= '<tr><td> <a title="'.strip_tags($this->getDescription()).'" href="'.$this->getLink().'">'.$this->getTitle().'</a></td><td>'.$this->getDate().'</td></tr>';
$this->result[] = array(
"title" => $this->getTitle(),
"link" => $this->getLink(),
"date" => $this->getDate(),
"image" => $this->getImage(),
"description" => $this->getDescription(),
);
}
$this->data .="</table>";
return $this->getResult();
}
}
Add the below code in your controller
<?php
$this->load->libarary("rss");
$config["utl"]="rsslink";
$this->rss->initialize($config);
$result = $this->rss->getRss();
print_r($result);
?>
Click download code