header("Content-Type: application/xml; charset=utf-8");
قرار است وقتي اين صفحه اجرا شد يك ساختار XML كه در شماره پيش در مورد آن توضيح داديم، توليد شود.اگر به ساختار RSS هفته پيش دقت كنيد، ميبينيد كه داراي يك بخش اصلي است كه هميشه بايد وجود داشتهباشد، اما يك بخش ثابت و از نوع آرايه دارد كه قرار است بر اساس اطلاعات ما پر شود، اين بخش ارائهاي محتواي صفحه RSS شما خواهد شد. در اولين مرحله ما بخشهاي ثابت را در خروجي نمايش ميدهيم سپس ارائه را براي توليد RSS توليد ميكنيم.
$rssfeed = '«?xml version="1.0" encoding="ISO-8859-1"?»';
$rssfeed .= '«rss version="2.0"»';
$rssfeed .= '«channel»';
$rssfeed .= '«title»Sample«/title»';
$rssfeed .= '«link»http://jamejamonline.ir«/link»';
$rssfeed .= '«description»This is an example RSS feed«/description»';
$rssfeed .= '«copyright»Copyright (C) 2012 jamejamonline.com«/copyright/»';
حالا بايد بخش متغير آن را كه شامل فهرستي از مطالبي است كه در RSS قرار ميگيرند كامل كنيم:
for($index = 0; $index « 10; $index++) {
$rssfeed .= '«item»';
$rssfeed .= '«title»Ttile' . $index . '«/title»';
$rssfeed .= '«description»Description' . $index . '«/description»';
$rssfeed .= '«link»http://domain.com/' . $index . '«/link»';
$time = time();
$now = (int)(date('Y',$time).date('m',$time).date('j',$time));
$rssfeed .= '«pubDate»' . $now . '«/pubDate»'; $rssfeed .= '«/item»'; }
اما XML بالا دو تگ باز ـ channel و ديگري rss ـ دارد كه بايد آنها را ببنديد بعد از آن شما ميتوانيد متغير $rssfeed را كه نشاندهنده خروجي RSS شماست در خروجي چاپ كنيد:
$rssfeed .= '«/channel»';
$rssfeed .= '«/rss»';
echo $rssfeed;
اما به يك نكته دقت داشتهباشيد، در مثال بالا آيتمهاي خود را به صورت نمونه پر كرديم (حلقه for) شما ميتوانيد آيتمهاي خود را بر اساس ديتابيس خود پر كنيد.اين راه حل در net. هم جوابگوي كار شما خواهد بود. در net. شما صرف نظر از تمامي اين كارها ميتوانيد از روش Serialize كردن (در php نيز ميتوانيد اينكار را انجام دهيد) يك شيء از يك كلاس آن را به قالب يك RSS در بياوريد.در دات نت شما راههاي متفاوتي براي اينكار داريد؛ يكي از اين راهها استفاده از كلاسهايي است كه براي توليد و پردازش XML به شما ارائه ميكند استفاده كنيد، يا كلاسهاي آمادهاي را كه ديگران براي توليد RSSنوشتهاند به كار ببريد؛ اما سادهترين كار استفاده از WCF و APIهايي است كه براي توليد RSS به شما ميدهد، در زير يك مثال ساده از توليد RSS با استفاده از WCF بيان ميكنيم.ابتدا شما با استفاده از SyndicationFeed مشخصات RSSخود را به صورت زير مشخص ميكنيد:
SyndicationFeed feed = new SyndicationFeed("Sample",
" This is an example RSS feed ",
new Url("http://jamejamonline.ir "));
در اين مرحله براي اضافه كردن item ميتوانيد از كلاس SyndicationItem استفاده كنيد. به كد زير دقت كنيد:
List«SyndicationItem» items = new List«SyndicationItem»();
for (int i = 0; i « 10; i++){
SyndicationItem item = new SyndicationItem(
"Title" + i.ToString(),
"Content" + i.ToString(),
new Url("http://domain.com/" + i.ToString()),
"Item" + i.ToString(),
DateTime.Now);
items.Add(item); }
مقدار items برابر آيتمهايي هست كه در RSS نمايش داده ميشود؛ بنابراين حالا بايد به feed ـ كه در بالا توليد كرديم ـ بگوييم چه آيتمهايي را بايد نمايش دهد، سپس با استفاده از كلاس Rss20FeedFormatter خروجي RSS را توليد كنيم:
feed.Items = items;
return new Rss20FeedFormatter(feed);
كلاس Rss20FeedFormater هدر فايل را براي نمايش RSS مشخص ميكند، به طوري كه مرورگر شما متوجه ميشود خروجي صفحه مورد نظر RSS است.
.: Weblog Themes By Pichak :.