شما عضو این انجمن نبوده یا وارد نشده اید. لطفا برای مشاهده کامل انجمن و استفاده از آن وارد شوید یا ثبت نام کنید .
باشگاه کاربران روماک
ساخت فید خوان آر اس اس (RSS Feed Reader) با php - نسخه‌ی قابل چاپ

+- باشگاه کاربران روماک (https://forum.romaak.ir)
+-- انجمن: انجمن طراحی سایت و برنامه نویسی (https://forum.romaak.ir/forumdisplay.php?fid=78)
+--- انجمن: کد نویسی (https://forum.romaak.ir/forumdisplay.php?fid=79)
+---- انجمن: PHP (https://forum.romaak.ir/forumdisplay.php?fid=46)
+---- موضوع: ساخت فید خوان آر اس اس (RSS Feed Reader) با php (/showthread.php?tid=394)



ساخت فید خوان آر اس اس (RSS Feed Reader) با php - saberi - ۹۴/۶/۲۳

ساخت فید خوان آر اس اس (RSS Feed Reader) با php

همانطور که می دانیم، فید آر اس اس (RSS Feed) یا خوراک وب، یکی از کاربردی ترین روش ها برای اطلاع از به روز رسانی یک سایت یا وبلاگ است که خیلی از کاربران ترجیح می دهند از این طریق، مطالب صفحه مورد علاقه خودشان را دنبال کنند، اما استفاده از این امکان، تنها به همین مورد محدود نمی شود، به فرض می توان لیستی از مطالب سایتها یا وبلاگ ها را به صورت لینک باکس طراحی کرد و در وبلاگ یا سایت خود به نمایش درآورد یا تازه ترین مطالب بخش های مختلف سایت یا وبلاگ را در صفحه اصلی به بازدیدکننده گان نشان داد و یا هر ایده ی دیگری که به ذهنتان می رسد؛ به همین دلیل در این مطلب قصد داریم نحوه ساخت فید خوان آر اس اس (RSS Feed Reader) را با php آموزش دهیم، به امید اینکه مفید واقع شود.

آشنایی با شیوه نگارش فید آر اس اس (RSS Feed)

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

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

توضیح:
- یک فید آر اس اس از تگ هایی کلیدی تشکیل شده که هر کدام برای نمایش محتوای خاصی کاربرد دارند، مثلا تگ title برای نمایش عناوین مطالب است یا link، آدرس لینک مطلب مورد نظر را در خود نمایش می دهد، description برای پیش نمایش مطلب و pubDate تاریخ ایجاد آن را نشان می دهد.
- کد php که در ادامه به آن اشاره خواهیم کرد، با دریافت فایل xml فید، تگ های آن را تجزیه کرده و نتایج را نمایش می دهد.
کد php فید خوان آر اس اس (RSS Feed Reader)

برای نمایش محتوای فید های آر اس اس، در سایت یا وبلاگ خود، می توانید از توابع زیر که به زبان php نوشته شده اند استفاده کنید، کافی است آدرس فید را جایگزین مقادیر پیش فرض در کد کنید.

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

توضیح:
- آدرس فید خود را در متغیر url جایگزین کنید (حتما آدرس کامل را به صورت http://www یا //:http درج کنید).
- تابع xml2array مقادیر دریافتی از فید را تجزیه کرده و آن را به صورت آریه هایی قابل استفاده در تابع دوم یعنی display_feed در می آورد.
- preg_match_all و preg_match در تابع xml2array، با جایگزینی مقادیر رشته ای با آرایه ها، امکان استفاده از آنها را در php فراهم می کنند.
- در تابع display_feed، محتویات فید مقصد را با file_get_contents دریافت می کنیم.
- در ادامه، تابع display_feed، به صورت داینامیک، تگ ها را با آرایه مقایسه کرده و مقادیر آنها را جایگزین می کند تا سرانجام نتیجه کد به صورت الگوی موجود در متغیر template در هر دور حلقه foreach به مرورگر ارسال شود.
- خروجی کد بالا در بلاکی با آی دی rss-block تولید می شود و هر آیتم، کلاس (css) با نام rss-item دارد، از این کلاس ها برای ایجاد تنظیمات و استایل css دلخواه می توانید استفاده کنید (اگر در این زمینه آشنایی ندارید، می توانید از نمونه پیش فرض، در انتهای همین صفحه استفاده کنید).
تنظیمات و استایل css قابل اعمال بر روی فید خوان php

کد بالا به صورت پیش فرض تنها لینک مطالب را خروجی می دهد، اما همانطور که پیش تر گفتیم، شما می توانید هرکدام از تگ های rss را در خروجی داشته باشید، به طور مثال توضیحات مطالب را با افزودن description به صورت #description# به متغیر template، علاوه بر لینک ها نمایش دهید، به فرض در کد زیر ما این کار را برای تاریخ و توضیحات انجام داده ایم.

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

برای اعمال استایل دلخواه نیز می توانید در یک کلاس css مقادیر مورد نظر خود را به کلاس های rss-block و rss-item نسبت دهید، برای مثال:

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *
پیش نمایش اسکریپت فید خوان آر اس اس

نمونه کامل کد  را می توانید در زیر مشاهده کنید.

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *