وب سایت مهندس شامحمدی

اولین و تخصصی ترین وب سایت تخصصی آموزش کد های هسته ای

ساخت فید آر اس اس (RSS Feed)، با استفاده از php و mysql

1395-05-03
بازدید: 2194

آر اس اس (RSS) مخففی از سرواژه های RDF Site Summary (کلمه RDF مخفف Resource Description Framework) و معروف به Really Simple Syndication است و در اصطلاح به روشی گفته می شود که با آن می توان بدون مراجعه به یک سایت یا یک وبلاگ، با استفاده از ابزارهایی موسوم به آر اس اس خوان یا Feed Reader، آخرین مطالب آن را با صرف حداقل زمان و به صورت متن ساده یا متن همراه تصاویر معمولا به صورت چکیده پیش خوانی نمود، فیدها یا خوراک وب به زبان xml یا Extensible Markup Language هستند، به طور ساده زبان xml کدهایی را تولید می کند که برای انسان و ماشین قابل خواندن و استفاده بوده و قابلیت سازگاری با پلتفرم های مختلف را داشته باشد، پایه گذار xml کنسرسیوم جهانی وب یا همان w3c بود که با هدف پشتیبانی از یونیکدهای زبان های مختلف جهان در اینترنت، دست به ساخت این زبان زد که امروزه کم تر سایت یا وبلاگی است که یک خروجی rss نداشته باشد، در آموزش پیش رو خواهیم گفت که چگونه می توانیم به کمک php و mysql برای سایت یا وبلاگ شخصی خود فید آر اس اس یا همان خوراک وب را ایجاد و مدیریت کنیم.

آشنایی با فرمت کلی فید آر اس اس:


قبل از اینکه بتوانیم کدهای php و mysql خود را بنویسیم و از آنها خروجی xml بگیریم، باید فرمت کلی آن را بشناسیم؛ به طور ساده یک فید آر اس اس استاندارد، به صورت زیر است.

 


 

http://yoursite.com توضیح fa Copyright عنوان مطلب توضیح مطلبلینک مطلب لینک مطلب تاریخ مطلب به میلادی وبگو

 توضیح:
- کد بالا شیوه کلی نگارش صحیح خروجی یک فید آر اس اس ورژن 2 است.
- برای سازگاری و کاربرد بیشتر، تگ guid نیز به کد اضافه شده است (در حالت معمول بدون این تگ هم فید قابل استفاده است).
- یونیکد فید آر اس اس مخصوصا برای زبان فارسی باید utf-8 باشد.
- مطالب و اطلاعات آنها بین تگ های و نوشته می شوند، یعنی برای هر مطلب، یک و به همراه محتوای درون آن تکرار می شود.

چگونه از php و mysql برای ایجاد یک فید آر اس اس استفاده کنیم:


پس از اینکه با فرمت کلی خوراک وب آشنا شدیم، گرفتن خروجی از اطلاعات موجود در دیتابیس گام دوم است، برای این کار ابتدا یک فایل خالی با نام rss.xml ترجیحا در ریشه سایت بسازید (از این فایل برای نوشتن و خروجی نهایی استفاده خواهیم کرد)، سپس کد زیر را متناسب با دیتابیس و سیستم مدیریت محتوای خود تنظیم کنید.

 

";
$rssfeed .= "";
$rssfeed .= "";
$rssfeed .= "وبگو | فید آر اس اس";
$rssfeed .= "http://yoursite.com";
$rssfeed .= "آموزش برنامه نویسی و مهارتهای وب";
$rssfeed .= "fa";
$rssfeed .= "Copyright (C) ".date('Y')." http://yoursite.com";
//انتخاب مطالب از پایگاه داده
$result = mysql_query("SELECT * FROM articles WHERE show = 'show' ORDER BY ranking + 0 DESC LIMIT 20")
or die (mysql_error());
//استفاده از ردیف های پایگاه داده
while($row = mysql_fetch_array($result)){
 $id = $row['id'];
 $title = $row['title'];
 //ایجاد خروجی استاندارد و جلوگیری از ایجاد کاراکترهای غیر مجاز
 $title = htmlspecialchars($title, ENT_QUOTES, 'UTF-8');
 $summary = $row['summary'];
 //ایجاد خروجی استاندارد و جلوگیری از ایجاد کاراکترهای غیر مجاز 
 $summary = htmlspecialchars($summary, ENT_QUOTES, 'UTF-8');
 //تبدیل تاریخ دیتابیس به تاریخ استاندار
 $date = $row['date'];// 22-12-1999
 $stringArray = explode("-", $date); 
 $date = mktime(0,0,0,$stringArray[1],$stringArray[2],$stringArray[0]); 
 $convert = date("D, j M Y", $date);
 $date = $convert .' '. $row['time'].' '.'GMT';
 //تعریف لینک خروجی
 $link = "http://yoursite.com/?article=$id";
 //ایجاد آیتم برای فید
 $rssfeed .= "";
 $rssfeed .= "" . $title . "";
 $rssfeed .= "" . $summary . "";
 $rssfeed .= "" . $link . "";
 $rssfeed .= "" . $link . ""; 
 $rssfeed .= "" . $date . "";
 //$rssfeed .= "" . mail . "(url)".""; //اختیاری
 $rssfeed .= "وبگو";
 $rssfeed .= "";
 }
$rssfeed .= "";
$rssfeed .= "";
//نوشتن اطلاعات در فایل خروجی
$file = "rss.xml";
chmod($file, 0755);
$fileHandle = fopen($file, 'w+') 
or die("خطا: سطح دسترسی برای ویرایش فایل در سرور تنظیم نیست!");
$stringData = $rssfeed;
fwrite($fileHandle, $stringData);
fclose($fileHandle);
?>

 

 

توضیح:
- همان طور که گفتیم، برای استفاده از کد بالا باید موارد مورد نیاز را با توجه به پایگاه داده و سیستم مدیریت محتوای خود ویرایش کنید.
- در قسمت mysql_query، از جدول فرضی articles تعداد 20 مورد از آخرین مطالب منتشر شده ('WHERE show = 'show) را انتخاب کرده ایم.
- ranking + 0 برای جلوگیری از بروز مشکل عدد فرض نشدن ردیف هایی است که به صورت varchar تعریف شده اند (اگر در یک ردیف varchar بخواهید با اعداد، sort کنید، باید عدد صفر را به مقدار موجود اضافه کنید تا mysql نوع آن ردیف را به عنوان عدد بشناسد و بتواند روی آن ردیف، sort عددی را اجرا کند)، اگر نوع داده در ردیف مورد نظر INT باشد، نیازی به جمع با عدد صفر نیست.
- htmlspecialchars و تنظیمات آن برای جلوگیری از ایجاد کاراکترهای غیر مجاز در خروجی xml است.
- فرمت استاندارد تاریخ در فید آر اس اس به صورت Sat, 21 Apr 2012 14:36:40 GMT (جهت نمونه) است، لذا باید تاریخ mysql را به کمک توابع explode و mktime به این فرمت استاندارد تبدیل کنیم.
- قسمت مربوط به اختیاری است، به طور استاندارد باید ایمیل سایت خود را در این قسمت تعریف کنید که این کار ممکن است موجب هجوم اسپمرها به آدرس پست الکترونیک شما شود.
- قسمت پایانی کد (chmod ،fopen ،fwrite و fclose) برای نوشتن اطلاعات در فایل rss.xml است.
- برای به روز رسانی مرتب فید آر اس اس بهتر است آن را در قسمت ارسال مطالب ایمپورت کنید تا با هر بار انتشار و ارسال پست های جدیدتر، اطلاعات جدید جایگزین موارد قبلی شود.


تبلیغات
گروه تلگرامی ویژه رفع اشکال کد های هسته ای و نرم افزار ها

این گروه صرفا برای بحث در باره کد ها و نرم افزارهای هسته ای می باشد لذا از بحث های نامرتبط خود داری فرمایید و با معرفی گروه به دوستان خود در مفید بودن بیشتر گروه همیار ما باشید.


کانال تلگرامی ویژه اطلاع رسانی کارگاه های آموزشی

در این کانال اطلاعیه های مربوط به کارگاه های آموزشی و دوره های آنلاین و حضوری منتشر می شود


گروه تلگرامی پشتیبانی کارگاه ها و کلاس ها

در این کانال آخرین اخبار منتشر شده در سایت نشر داده می شود


گروه تلگرامی آخرین آموزش های منتشر شده در سایت

در این کانال آخرین اخبار منتشر شده در سایت نشر داده می شود


کانال آپارت ما

این کانال متعلق به وب سایت مهندس شامحمدی می باشد. تنها قسمتی از ویدئو های آموزشی در اینجا نشان داده است.


کانال نماشا ما

این کانال متعلق به وب سایت مهندس شامحمدی می باشد. تنها قسمتی از ویدئو های آموزشی در اینجا نشان داده است.

نظرات کاربران

افزودن نظر