[PHP] 코드이그니터 - RSS읽기
RSS 읽어오기
PHP 프레임워크인 코드이그니터(Codeigniter)에서 RSS정보를 읽어 오는 Controlor 소스입니다.
curl을 사용하여 웹주속의 정보를 읽어오고 xml 데이터를 파싱하여 처리하는 소스를 소개합니다.
예전 블로그의 RSS 내용
Curl, SimpleXmlElement, XML 처리코드
$this->load->helper('html'); $this->load->helper('text'); $feed = array(); $channel_data = array(); $ch = curl_init(); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_URL, "RSS주소"); // USER AGENT 가 없으면 못읽는 사이트가 있다 curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); $xmldata = curl_exec($ch); curl_close($ch); // 내용을 못읽은 경우 해결 $xmldata = str_replace("","",$xmldata); $xmldata = str_replace("","",$xmldata); $xml = new SimpleXmlElement($xmldata); if ($xml->channel) { $channel_data['title'] = $xml->channel->title; $channel_data['description'] = $xml->channel->description; foreach ($xml->channel->item as $item) { $data = array(); $data['id'] = (string)$item->id; $data['title'] = (string)$item->title; $data['description'] = (string)$item->contentEncoded; if($data['description'] == "") { $data['description'] = (string)$item->description; } $data['pubDate'] = (string)$item->pubDate; $data['link'] = (string)$item->link; $dc = $item->children('http://purl.org/dc/elements/1.1/'); $data['author'] = (string)$dc->creator; $feed[] = $data; } } else { $channel_data['title'] = $xml->title; $channel_data['description'] = $xml->subtitle; foreach ($xml->entry as $item) { $data = array(); $data['id'] = (string)$item->id; $data['title'] = (string)$item->title; $data['description'] = (string)$item->contentEncoded; if($data['description'] == "") { $data['description'] = (string)$item->description; } $data['pubDate'] = (string)$item->pubDate; $data['link'] = (string)$item->link['href']; $dc = $item->children('http://purl.org/dc/elements/1.1/'); $data['author'] = (string)$dc->creator; $feed[] = $data; } }
View 소스
Controlor 에서 읽은 데이터를 표시하는 코드
예전에 홈페이지 만들때 사용하던 코드 입니다.
from http://skshpapa80.tistory.com/60 by ccl(A) rewrite - 2020-03-07 07:55:37
댓글
댓글 쓰기