چگونه خروجی rss بگیریم ؟

amirepsilon

Active Member
سلام
فکر کنیم یه تیبل داریم بهنام news میخواهیم یه خروجی Rss بگیریم !
لطفا راه ساده ای رو معرفی کنید
ممنون
 

justpersian

Member
اگه منظورت درست کردن RSS هستش که کار ساده ایه
این کد رو همین الا نوشتم اگه مشکلی داشت بگو :wink:
PHP:
<?php
header("Content-type: application/xml");
require('config.php');
$q = mysql_query("SELECT * FROM `news` ORDER BY id DESC LIMIT 0,50");
?>
<?="<?" ?>xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
    <title>News RSS</title>
    <link></link>
    <language>fa</language>
    <generator>My</generator>
<?php
while($f = mysql_fetch_array($q)){
$t = $f['title'];
$id = $f['id'];
$desc = $f['text'];
$desc = substr($desc, 0, 250);
echo"
<item>
<title>$t</title>
<link>news.php?id=$id</link>
<description>$desc</description>
<pubDate></pubDate>
<guid>news.php?id=$id</guid>
</item>
";
}
?>
</channel>
</rss>
تو ابتدای این کد یه جا نوشته header("Content-type: application/xml");
این تو رعایت استانداردها خیلی مهمه ...
 

Allahparast

Member
اگه منظورت درست کردن RSS هستش که کار ساده ایه
این کد رو همین الا نوشتم اگه مشکلی داشت بگو :wink:
PHP:
<?php
header("Content-type: application/xml");
require('config.php');
$q = mysql_query("SELECT * FROM `news` ORDER BY id DESC LIMIT 0,50");
?>
<?="<?" ?>xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
    <title>News RSS</title>
    <link></link>
    <language>fa</language>
    <generator>My</generator>
<?php
while($f = mysql_fetch_array($q)){
$t = $f['title'];
$id = $f['id'];
$desc = $f['text'];
$desc = substr($desc, 0, 250);
echo"
<item>
<title>$t</title>
<link>news.php?id=$id</link>
<description>$desc</description>
<pubDate></pubDate>
<guid>news.php?id=$id</guid>
</item>
";
}
?>
</channel>
</rss>
تو ابتدای این کد یه جا نوشته header("Content-type: application/xml");
این تو رعایت استانداردها خیلی مهمه ...
سلام ممنون میشه کدهای ایکس ام الش رو یه توضیح بدی :rose:
 

justpersian

Member
سلام ممنون میشه کدهای ایکس ام الش رو یه توضیح بدی :rose:
سلام
توضیح خاصی نداره !
معمولا فایل های RSS اینطوری تولید میشن
شما در xml اسم تگ ها را هر طوری که بخوای می تونی بذاری مثلا تو کدی که من دادم یه جا نوشته :
PHP:
<title>$t</title>
شما به جای تگ title می تونی هرچی که بخوای بنویسی ولی پیشنهاد میشه استانداردها رو رعایت کنی !
می دونی چرا ؟
چون معمولا RSS Reader ها واسه پیدا کردن عنوان مطلب دنبال تگ title میگردن !
بعد هم همون طور که گفتم شما وقتی کد
PHP:
header("Content-type: application/xml");
در ابتدای کدها قرار میدید به مرورگر اعلان می کنید که این یک فایل xml است !
xml در ظاهر چیز خاصی نداره اما کارهای بزرگی میشه باهاش کرد
بازم اگه جایی برات مبهم هست بگو تا توضیح بدم
توضیح دادن کلی کارو سخت می کنه :D
موفق باشی
 
اگه منظورت درست کردن rss هستش که کار ساده ایه
این کد رو همین الا نوشتم اگه مشکلی داشت بگو :wink:
PHP:
<?php
header("content-type: Application/xml");
require('config.php');
$q = mysql_query("select * from `news` order by id desc limit 0,50");
?>
<?="<?" ?>xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
    <title>news rss</title>
    <link></link>
    <language>fa</language>
    <generator>my</generator>
<?php
while($f = mysql_fetch_array($q)){
$t = $f['title'];
$id = $f['id'];
$desc = $f['text'];
$desc = substr($desc, 0, 250);
echo"
<item>
<title>$t</title>
<link>news.php?id=$id</link>
<description>$desc</description>
<pubdate></pubdate>
<guid>news.php?id=$id</guid>
</item>
";
}
?>
</channel>
</rss>
تو ابتدای این کد یه جا نوشته header("content-type: Application/xml");
این تو رعایت استانداردها خیلی مهمه ...

آقا واقعا کارت محشره دسئت درد نکنه لطف کردی که زمان گذاشتی
 

amirepsilon

Active Member
از همه ممنونم
ولی بد نیست یه توضیحی بدی !
Rss - Rss2 - rsd اینا چه فرقی با هم دارن ؟
تو استاندارد ها فرق دارن ؟
ممنون
یا علی
 

justpersian

Member
RSS1 خوب دیگه استفاده نمیشه
این کد هم RSS2 هستش !
همون طوری که توی کد نوشته :
کد:
<rss version="2.0">
RSD هم نمی دونم چیه !
موفق باشی
 

ziXet

مدیر انجمن PHP/MYSQL
بهتره از rssfeedcreator که یه کلاس مخصوص همین کار هست استفاده کنید.
همه چیزاش قابل تنظیمه
 

justpersian

Member
اون کد رو تو یه فایل php ذخیره کن همین !
حتما هم نیاز نیست پسوندش xml باشه آدرس فایل می تونه به صورت mysite.com/rss.php باشه !
ولی اگه خواستی به xml تبدیل کنی با htaccess میشه !
موفق باشی
 

amirepsilon

Active Member
دوست من
کد رو امتحا کردم ولی ارور میگیره !

Warning: Cannot modify header information - headers already sent by (output started at\rss.php:1) in G:\web Developing\xampp\htdocs\Sites\rss.php on line 3

اینم از کد : header("Content-type: application/xml");

راه دیگه ای نیست ؟
 

justpersian

Member
قبل از کد
header("Content-type: application/xml");
خروجی ارسال نکردی به مرورگر کاربر ؟
فایلت امضای BOM نداره ؟
 

ziXet

مدیر انجمن PHP/MYSQL
سلام
فکر کنم رای همون اشکال میگیره میگه header ها ارسال شدن !!!




این چیه ؟
وقتی میخوای سیو کنی اگه گزینه BOM فعال باشه چندتا کاراکتر اول فایلت قرار میده که شما نمیبینی ولی همون چندتا تو کار هدر مشکل ایجاد مکنن.
از ادیتور های پیشرفته مثل EMEditor یا Notepad++ استفاده کن
 

amirepsilon

Active Member
من با دریم ویور کار میکنم
چطور bom رو فعال یا غیر فعال کنم ؟
در ضمن این bom به چه دردی میخوره !!!
 

justpersian

Member
سلام
برای غیر فعال کردن BOM در نرم افزار دریم ویور :
Ctrl + J => Title / Encoding => Include Unicode Signature
 

amirepsilon

Active Member
ممنون
ولی هنوز جواب نگرفتم

نمونه دیگری از کد های آر اس اس ندارید ؟
 

جدیدترین ارسال ها

بالا