PDA

View Full Version : ساخت rss feeds



ravand
دوشنبه 17 آبان 1389, 14:00 عصر
من یک اسکریپت از همین سایت پیدا کردم که به نظرم خوب کار می کنه ولی نمی دونم چجوری ازش استفاده کنم.فکر کنم باید یه سری فیلد توی mysql بسازم ولی نمی دونم توی این اسکریپت چه چیزهایی رو بردارم و توی mysql وارد کنم . نام جدول و نام دیتابیس رو چی بذارم؟
ممنون میشم راهنماییم کنید.
راستی این فایل php به طور خودکار وقتی رفرش میشه یه فایل با پسوند xml هم میسازه. :لبخند:

binyaft
دوشنبه 17 آبان 1389, 14:16 عصر
خوب برای ساخت RSS به صورت زیر عمل کنید
تگها :
title : سربرگ ( موضوع ) پست
link : ادرس پست
description : توضیحات ( خلاصه پست )

مقادیر بین تگ های بالا رو باید از بانک استخراج کنید

ravand
دوشنبه 17 آبان 1389, 15:50 عصر
مثلا من یه بانک اطلاعاتی با نام rss و یه یه جدول با نام rss درست کردم کل کدهاش به روش زیر بود:

CREATE TABLE `rss`.`rss` (
`title` VARCHAR( 30 ) CHARACTER SET utf8 COLLATE utf8_persian_ci NOT NULL ,
`link` VARCHAR( 30 ) CHARACTER SET utf8 COLLATE utf8_persian_ci NOT NULL ,
`description` VARCHAR( 50 ) CHARACTER SET utf8 COLLATE utf8_persian_ci NOT NULL
) ENGINE = MYISAM CHARACTER SET utf8 COLLATE utf8_persian_ci;

ولی نمیدونم چجوی با جدول ارتباط برقرار کنم .
توی فایل rss.php از این خط استفاده کردم

include_once("config.php");

و فایل config.php هم این بود :

<?php


$db_host = "localhost";
$db_name = "rss";
$db_user = "root";
$db_pass = "";

?>
:متفکر:

binyaft
دوشنبه 17 آبان 1389, 16:23 عصر
برای ارتباط با جدول

select * from rss
اگر طبق ID استخراج میکنید

select * from rss where id='$_GET[id]'

funpatogh
دوشنبه 17 آبان 1389, 21:04 عصر
شما جستجو کنید و طریق ارتباط با دیتابیس رو یاد بگیرید اول
اینم یک نمونه بهتر اون فایل شما روشش منساب نیست و خیلی قدیمی هست


<?php
function rss_reader($url, $limit= 10)
{
# Create DOM object.
$obj_dom= new DOMDocument();
# Read/Load data from URL.
$obj_dom->load($url);
# Read/Get XML tags.
$ary_items= $obj_dom->getElementsByTagName('item');
# Destroy object.
$obj_dom= null;
# Count number of tags.
foreach($ary_items as $value): $int_items ++;
endforeach;

# Check limit
if($int_items > $limit): $int_loop= $limit;
else: $int_loop= $int_items;
endif;

$str_return= '';

# Read XML/RSS nodes.
for($i = 0; $i < $int_loop; $i ++)
{
$str_itemtitle= $ary_items->item($i)->getElementsByTagName('title')->item(0)->childNodes->item(0)->nodeValue;
$str_itemlink= $ary_items->item($i)->getElementsByTagName('link')->item(0)->childNodes->item(0)->nodeValue;
$str_return.= '<a href="' . $str_itemlink . '" target="_blank">' . $str_itemtitle . '</a><br/>';
};

# Unset variables.
unset($url, $limit, $obj_dom, $ary_items, $int_items, $int_loop, $i, $str_itemtitle, $str_itemlink);
# The output.
return((string)$str_return);
}
echo rss_reader("http://www.funpatogh.com/Rss",15);
?>

ravand
دوشنبه 17 آبان 1389, 21:55 عصر
من یه چیزی می خواستم که مرورگر بتونه بخونه الان شما به آدرس زیر برو می بینی که میشه به مرورگر اضافه کرد : http://rayane.blogsky.com/rss
ولی اینی که شما دادی مثل یه سایت می مونه که ما ازش بازدید می کنیم . ما اصلا از rss feeds استفاده می کنیم چون نیازی به سرزدن به سایتی رو نداشته باشیم. :چشمک:

funpatogh
سه شنبه 18 آبان 1389, 01:51 صبح
خوب من برای اینکه شما نحوه کارو متوجه بشید خروجی رو چاپ کردم میتونید echo نکنید

ravand
سه شنبه 18 آبان 1389, 07:54 صبح
ببخشید داداش این چیزی که شما نوشتی اصلا rss feeds نیست . اگه به این خطی که نوشتید دقت کنید :

echo rss_reader("http://www.funpatogh.com/Rss",15);می بینید که داره از آدرس rss سایت دیگه ای استفاده می کنه.:متفکر:
و حالا اگه کلمه ی rss رو از جلوی آدرس برداری چند تا اخطار بهت میده.

binyaft
سه شنبه 18 آبان 1389, 14:01 عصر
و حالا اگه کلمه ی rss رو از جلوی آدرس برداری چند تا اخطار بهت میده.
خوب باید خطا بده دیگه :لبخند:
شما باید ادرس فایل RSS سایت رو بدید نه ادرس سایت

ravand
سه شنبه 18 آبان 1389, 17:49 عصر
میدونم داداش
منظورم این بود که این کدها باید خودشون یک rss feeds خلق کنند نه اینکه از Rss Feeds سایت دیگه استفاده کن.:لبخند: ما بحثمون سر کدی بود که بتونه rss feeds بسازه نه اینکه بهRss Feeds سایت دیگه متصل بشه. :چشمک:

funpatogh
سه شنبه 18 آبان 1389, 22:06 عصر
آها شما میخوای خروجی rss داشته باشی من فکر کردم که میخوای بخونی شرمنده
این یک نمونه


<?php
// Insert here the the title of your feed
$rss_title= "Yoursite.com RSS feed";
// Insert your site, in the format site.com
$rss_site= "yoursite.com" ;
// Insert the description of your website
$rss_description= "Description of your RSS feed";
// Applicable language of the feed. For spanish, change to "es"
$rss_language="en";
// Address of the logo file. It can be called whatever you want it to be!
$rss_logo="http://www.".$rss_site."/images/rss.gif";
// the feed's author email
$emailadmin="your@emailaddress.com";

// set the file's content type and character set
// this must be called before any output
header("Content-Type: text/xml;charset=utf-8");


// Open the database

mysql_connect("localhost","root","");
@mysql_select_db("databaseName") or die("Unable to select DB");

// Select all the records from the Articles/Blog table - whatever you're using it for

$query = "select * from Articles ORDER BY ID DESC" ;
$result = mysql_query($query) or die("Query failed") ;

echo
'<?xml version="1.0" encoding="ISO-8859-1" ?>
<rss version="2.0">
<channel>
<title>'.$rss_title.'</title>
<link>http://www.'.$rss_site.'</link>
<description>'.$rss_description.'</description>
<language>en-en</language>
<image>
<url>'.$rss_logo.'</url>
<title>'.$rss_site.'</title>
<link>http://www.'.$rss_site.'</link>
</image>';


for($i=0;$i<6; $i++) //will loop through 6 times to generate 6 RSS items
{

$photo_name = 'where-ever a photo for this article could be found - needs to be http://www.yoursite.com/images/whatever.gif';

$subject = mysql_result($result,$i,'ArticleTitle'); //subject line for the RSS item

// Pass the record URL_product to the variable $url_product. It also
// has to include the relative path, like in: "path/product1.htm"

$url_product = '/articles/wherever_your_article/blog_can_be_found'; //define the URL of where people could read this blog/article entry

// Define a description of the item

$description = mysql_result($result,$i,'ArticleContent'); //easiest way is by grabbing the content

// Clean the description

$description = str_replace ("&amp","",htmlspecialchars(strip_tags($description)));

// Pass tags to describe the product - this has been left ouf of this example

$rss_tags = 'tag1, tag2';

//This is a teaser of your article, basically what RSS readers will show the user in their inbox.
//This is how you entice users to come over and read the full article

//the easiest way is to just take the first few hundred characters of the content (description)

$short_description = substr($description,0,500) . "...";

//so you can define when it was published

$timestamp = mysql_result($result,$i,'Time');

//cleans the timestamp into an RSS friendly format

$pubdate = date("r", strtotime($timestamp));

//outputs the RSS item

echo
'
<item>
<title>'.$subject.'</title>
<link>http://www.'.$rss_site.$url_product.'</link>
<guid isPermaLink="true">http://www.'.$rss_site.$url_product.'</guid>
<description>'.$short_description.'</description>
<pubDate>'.$pubdate.'</pubDate>
</item>


';


} //end of the for-loop

mysql_close(); //close the DB

echo //close the XML file
' </channel>
</rss>';


?>

ravand
چهارشنبه 19 آبان 1389, 09:09 صبح
خیلی ممنون داداش از اینکه این کدها رو گذاشتی.
حالا من تصمیم گرفتم توی لوکال هاست این کدها رو امتحان کنم . و یه سری مطالب رو توی جدولش درج کنم ببینم می خونه یا نه؟
اسم دیتابیسم رو گذاشتم rss
جدول : Articles
نام فیلدها : title و link و description
ولی این اخطار رو بهم داد: Query failed
فکر کنم فیلد ها رو نتونسته بشناسه. و باید از فیلدهای دیگه ای استفاده کنم. لطفا بگید که باید از چه فیلدهایی استفاده کنم؟
ممنون میشم راهنماییم کنید. :متفکر:

ravand
چهارشنبه 19 آبان 1389, 14:17 عصر
بچه ها بیاید این تاپیک رو کاملش کنیم که آخرش معلوم بشه.:لبخند:

funpatogh
چهارشنبه 19 آبان 1389, 19:35 عصر
خیلی ممنون داداش از اینکه این کدها رو گذاشتی.
حالا من تصمیم گرفتم توی لوکال هاست این کدها رو امتحان کنم . و یه سری مطالب رو توی جدولش درج کنم ببینم می خونه یا نه؟
اسم دیتابیسم رو گذاشتم rss
جدول : Articles
نام فیلدها : title و link و description
ولی این اخطار رو بهم داد: Query failed
فکر کنم فیلد ها رو نتونسته بشناسه. و باید از فیلدهای دیگه ای استفاده کنم. لطفا بگید که باید از چه فیلدهایی استفاده کنم؟
ممنون میشم راهنماییم کنید. :متفکر:


ORDER BY ID

توی فیلد ها ID هم گزاشتید؟

HaSalN
سه شنبه 15 مهر 1393, 15:54 عصر
سلام
چطوری میتونم مثل این سایت فید داشته باشم؟
http://www.yasarchive.ir/feed
لطفا راهنمایی کنین