RSS강좌 목표가 RSS Reader(Aggregator) 구현보다는 RSS에 대한 이해이다 보니 너무 깊게 설명하여, 단순하게 RSS 기능 구현이 목적인 분들은 좀 복잡하다 생각하실 수 있을 것 같아, 이번시간에는 RSS 모듈을 통하여 개발자가 쉽게 RSS를 사용하는 방법을 소개하려고 합니다.
앞의 강좌에서 사용한 RSSReader 클래스( 꽤 쓸만함) 사용하는 것도 좋지만, PHP에는 PEAR(PHP Extension and Application Repository)라는 아주 좋은 솔루션이 있습니다. 그럼 PEAR에 대한 간략한 소개와 PEAR 중의 XML/RSS 클래스 사용방법을 알아 보도록 하겠습니다.
1. PEAR 소개PEAR는 "PHP Extension and Application Repository" 의 약자로써 Malin Bakken에 의하여 1999.11.12에 시작하여, 현재는 다양한 클래스등을 제공하여 PHP 개발자들이 좀 더 편리하게 개발할수 있는 환경을 제공하고 있습니다.
PHP 설치시 기본적으로 PEAR가 설치지 않기에( 버전과 설치 옵션에 따라서 차이가 있슴) 여러분의 시스템에 현재 PEAR가 설치되어 있지 않을 수 있습니다. PEAR의 설치와 보다 자세한 설명은 아래의 사이트를 참고하여 주십시요.
2. XML/RSS 설치 및 메뉴얼PEAR 클래스 중에서 XML_RSS를 설치해 보도록 하겠습니다. 사이트에서 직접 소스를 다운로드 받아서 설치하거나, 아님 아래의 예처럼 온라인상에서 바로 설치도 가능합니다. "pear" 의 사용방법은 "c:pearpear help" 로 pear 명령어들에 대한 간단한 설명을 볼수 있습니다.
- pear list -> 서버에 설치되어 있는 목록을 보여줍니다.
- pear remote-list -> pear.php.net 에 있는 Package 리스트를 보여줍니다.
- pear install packagename -> Package를 설치해줍니다.
- pear uninstall packagename -> Package를 설치해줍니다.
- pear remote-info packagname -> pear.php.net 에 있는 Package 정보를 보여 줍니다.
C:php>pear install XML_RSS
downloading XML_RSS-0.9.2.tgz ...
Starting to download XML_RSS-0.9.2.tgz (3,515 bytes)
....done: 3,515 bytes
requires package `XML_Tree'
XML_RSS: Dependencies failed
C:php>pear install XML_Tree
downloading XML_Tree-1.1.tgz ...
Starting to download XML_Tree-1.1.tgz (4,826 bytes)
.....done: 4,826 bytes
install ok: XML_Tree 1.1
C:php>pear install XML_RSS
downloading XML_RSS-0.9.2.tgz ...
Starting to download XML_RSS-0.9.2.tgz (3,515 bytes)
....done: 3,515 bytes
install ok: XML_RSS 0.9.2
C:phpPEAR>cd XML
C:phpPEARXML>dir
C 드라이브의 볼륨: 로컬 디스크
볼륨 일련 번호: 58B7-06FB
C:phpPEARXML 디렉터리
2004-11-20 02:07p <DIR> .
2004-11-20 02:07p <DIR> ..
2004-11-20 02:07p <DIR> Parser
2004-11-20 02:07p 18,932 Parser.php
2004-10-22 04:14p <DIR> RPC
2004-10-22 04:14p 34,992 RPC.php
2004-11-20 02:02p 8,718 RSS.php
2004-11-20 02:02p <DIR> Tree
2004-11-20 02:02p 10,028 Tree.php
4개 파일 72,670 바이트
5 디렉터리 9,076,826,112 바이트 남음
|
PEAR 메뉴얼 : http://pear.php.net/manual/en/package.xml.xml-rss.php
3. RSS Reader 기능 구현XML/RSS Package 사용에 대한 간단한 예와 "RSS강좌 - RSSReader Class 제작 및 Reader 만들기"에서 구현한 간단한 RSS Reader를 XML_RSS을 이용하여 구현해 보도록 하겠습니다. 코드들은 앞의 강좌에서 소개한 코드들과 거이 차이가 없고 간단하니 별도의 설명은 하지 않겠습니다.
<?
require_once "XML/RSS.php";
$rss =& new XML_RSS("http://www.ihelpers.co.kr/rss.php?q=all");
$rss->parse();
echo "<pre>";
print_r($rss->getStructure());
print_r($rss->getChannelInfo());
print_r($rss->getItems());
echo "</pre>";
?>
|
[ demopear.php ]
<?
require_once "XML/RSS.php";
$url = $HTTP_GET_VARS["URL"];
$rss =& new XML_RSS("http://www.ihelpers.co.kr/rss.php?q=all");
$rss->parse();
echo "<html><head><title>Simple RSS Reader</title>
";
echo "<style><!-- BODY,TD,SELECT { FONT: 9pt Arial; LINE-HEIGHT: 17px;} //--></style>
";
echo "<body><form>RSS URL : <input type=text name=URL value="$url" size=70> ";
echo "<input type=submit value="?">
";
echo "<hr>
";
echo "</form>
";
if(!empty($url)){
$channel = $rss->getChannelInfo();
while (list($key, $value) = each ($channel)) {
echo "<li>$key => $value</li>
";
}
echo "<p><table width=100%>";
$count = 0;
foreach($rss->getItems() as $items){
if($count == 0){
echo "<tr>";
while (list($key, $value) = each ($items)) {
printf("<td bgcolor="#EEEEEE">%s</td>
",$key);
}
echo "</tr>";
}
echo "<tr>";
while (list($key, $value) = each ($items)) {
printf("<td bgcolor="#F7F7F7">%s</td>
",$value);
}
echo "</tr>";
$count++;
}
echo "</table>";
}
echo "</body></html>
";
?> |
[ pearreader.php ]
3. 소스코드
|