پایان عمر گوگل ریدر و ساخت یک خبر خوان با PHP

اردیبهشت ۲, ۱۳۹۲ توسط : سعید

سلام

بالاخره زمان پیدا کردم تا مطلب جدید رو در سایت بذارم.برای این پست تصمیم گرفتم به آموزش ساخت یک خبر خوان یا RSS Reader رو براتون بذارم.همینطور که میدونید گوگل ریدر داره به پایان عمر خودش نزدیک میشه پس بهتره که یک خبر خوان اختصاصی برای خودمون بنویسیم.

برای خواندن محتویات فایلهای RSS زبان PHP یک کتابخانه به نام SimplePie داره که به راحتی میتونید فایلهای RSS رو باهاش مدیریت کنید.

خب بریم سراغ آموزش :

ابتدا کتابخانه simplepie رو از لینک زیر دانلود کنید :

https://github.com/simplepie/simplepie/zipball/1.3.1

برای استفاده از این کتابخانه باید فایل autoloder.php رو include کنید :

include 'simplepie/autoloader.php';

بعد از اینکار یک شیء از کلاس SimplePie میسازیم و تنظیماتش رو انجام میدیم :

$url = 'http://phpro.ir/feed/';
$feed = new SimplePie();
$feed->set_feed_url($url);
$feed->init();

در متغیر $url آدرس فید یا Rss سایت مورد نظر رو وارد میکنیم. اگر میخواید که در خبرنامه تعداد بیشتری از سایتها عضو باشید بهتره که آدرس Rss سایتهای دلخواه رو در دیتابیس ذخیره کنید و آدرس Rss رو از دیتابیس بخونید.

در خط بعدی یک شیء از کلاس SimplePie ایجاد کردیم. در خط بعد آدرس Rss رو به متد set_feed_url پاس دادیم تا SimplePie بفهمه که چه آدرسی رو میخوام داشته باشیم.

با فراخوانی متد init تنظیمات اولیه برای فید مورد نظر انجام میشه.حالا دیگه وقتشه که محتویات فیت رو بخونیم و نمایش بدیم .

برای نمایش نام فید و توضیحاتش میتونیم از دو متد زیر استفاده کنیم :

echo '<h1>' . $feed->get_title() . '</h1>';
echo '<p>' . $feed->get_description() . '</p>';

دقت کنید که این دو تا متد در اصل نام سایت و توضیحات مربوط به سایت رو نمایش میدن و هنوز به قسمت خواندن پستها نرسیدیم.

برای خواندن یکی از پستهای RSS میتونیم به صورت زیر عمل کنیم  :

$item = $feed->get_item(0);

echo '<p>عنوان: <a href="' . $item->get_link() . '">' . $item->get_title() . '</a></p>';
echo '<p>نویسنده: ' . $item->get_author()->get_name() . '</p>';
echo '<p>تاریخ: ' . $item->get_date('Y-m-d H:i:s') . '</p>';
echo '<p>توضیحات: ' . $item->get_description() . '</p>';
echo $item->get_content(true);

در ابتدا با متد get_item یکی از پستها رو بر حسب اندیس پست ( که از صفر شروع میشه ) انتخاب میکنیم سپس با نمایش محتویات پست میپردازیم.

اما کار ما هنوز ادامه داره. برای راحتی و عملکرد بهتر این خبر خوان بهتره که ۱۰ تا پست آخر رو به ما نمایش بده. برای این کار باید از متد get_item_quantity برای برگرداندن تعداد خبرهای موجود در فید استفاده میکنیم :

$itemQty = $feed->get_item_quantity();
for ($i = 0; $i < $itemQty; $i++) {
    $item = $feed->get_item($i);
    echo '<p>عنوان: <a href="' . $item->get_link() . '">' . $item->get_title() . '</a></p>';
    echo '<p>نویسنده: ' . $item->get_author()->get_name() . '</p>';
    echo '<p>تاریخ: ' . $item->get_date('Y-m-d H:i:s') . '</p>';
    echo '<p>توضیحات: ' . $item->get_description() . '</p>';
    echo $item->get_content(true);
    echo '<hr>';
}

بعد از اینکه تعداد خبرهای موجود در فید رو فهمیدیم میتونیم با استفاده از حلقه for و استفاده از متد get_item همه محتویات فید مورد نظر رو نمایش بدیم.

این کتابخانه امکانات خیلی زیادی داره که میتونه در ساخت یک خبر خوان به ما کمک کنه.البته اگر میخواید یک خبرخوان خوب داشته باشید باید مقداری سلیقه به خرج بدید و با تلفیق این کتابخانه با jQuery و Ajax یک خبرخوان زیبا و کاربردی درست کنید.

بازدید : ۳۸۳۹

اردیبهشت ۲۵, ۱۳۹۲ @ ۱۰:۰۴ ق.ظ

سلام،مطلب خوبی بود اگر مطالب کاربردی بیشتری بزارید خیلی بهتر میشه

پاسخ دادن
مرتضی
خرداد ۱۷, ۱۳۹۲ @ ۸:۱۴ ق.ظ

سلام

توی این فید خوان و چندتای دیگه یه مشکلی که هست اینه که بعضی از فیدهای سایت ها ر نمی تونه بخونه. البته یخاطر همون استاندارد نبودنش هست ، اما اگر بخوام این مشکل درست بشه چطوری باید عمل کرد؟

پاسخ دادن
فروردین ۲۲, ۱۳۹۳ @ ۸:۱۴ ق.ظ

سلام، بسیار خوب بود… استفاده کردم و جواب گرفتم
موفق باشین

پاسخ دادن
اردیبهشت ۲, ۱۳۹۳ @ ۱:۵۶ ب.ظ

سلام

برای اینکه فیدها رو وارد دیتابیس کنیم باید چیکار کنیم؟

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

پاسخ دادن
اردیبهشت ۲, ۱۳۹۳ @ ۱۱:۴۸ ب.ظ

سلام

چطوری میشه عکس فید رو هم از سایت مرجع گرفت؟

پاسخ دادن

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *


*