رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
کد PHP : دریافت و نمایش آخرین مطالب rss ، feed و خوراک وبسایت های دیگر با php
#1
شاید تا حالا دیدید که در وبسایت های مختلف، آخرین مطالب منتشر شده در سایت های دیگه رو نشون میدن . مثلا آخرین اخبار سیاسی رو از یک وبسایت نمایش میدن و آخرین اخبار اقتصادی رو از جای دیگه !

امروز می خوایم به شما بگیم که اینکار رو به چه شکل از طریق کد های php انجام بدید . برای اینکار فقط به آدرس rss ، feed و یا همون فایل خوراک سایت نیاز دارید . حتما تو وبسایت های مختلف آیکن زیر رو دیدید :
[عکس: rss128.png]
اگه یه توضیح مختصر بخوام بگم، این آیکن که معمولا با سایز کوچیک در وبسایت ها هست به فایلی لینک میشه که به اون خوراک سایت می گن . تو اون فایل خوراک آخرین مطالب اون وبسایت با ظاهری ساده و سبک وجود داره که بقیه برای دسترسی سریع به اون می تونن ازش استفاده کنن .

ما امروز می خوایم فقط با داشتن آدرس خوراک (هر سایتی) آخرین مطالبش رو از اون فایل بگیریم و در قالب یه باکس جالب مثل عکس زیر نمایش بدیم تا بتونیم آخرین مطالب هر وبسایتی رو توی وب خودمون داشته باشیم . در عکس زیر از خوراک سایت سون لرن استفاده شده تا لینک 5 مطلب آخرش نمایش داده بشه :
[عکس: 7lrsslast5.png]
گام اول : ایجاد فایل کلاس php برای دریافت و نمایش لینک های rss

برای اینکه کار شما رو راحت کنم یه کلاس براتون آماده کردم. یه بار این فایل رو میسازید و بعدا می تونید مکررا از توابع درون اون برای نمایش محتوای rss سایت های مختلف استفاده کنید .
:: پس یه فایل به نام rss.class.php بسازید و کد زیر رو توش بزارید و ذخیره کنید :



کد:
<?php
// by www.7Learn.com
class rss
{
    var $feed;
    function rss($feed){
        $this->feed = $feed;
    }
 
    function parse(){
        $rss = simplexml_load_file($this->feed);
        $rss_split = array();
        foreach ($rss->channel->item as $item) {
            $title = (string)$item->title; // Title
            $link = (string)$item->link; // Url Link
            $description = (string)$item->description; //Description
            $rss_split[] = '<div>
        <a href="' . $link . '" target="_blank" title="" > ::
            ' . $title . ' 
        </a>
          </div>
';
        }
        return $rss_split;
    }
 
    function display($numrows, $head){
        $rss_split = $this->parse();
        $i = 0;
        $rss_data = '<div class="vas">
           <div class="title-head">
         ' . $head . '
           </div>
         <div class="feeds-links">';
        while ($i < $numrows) {
            $rss_data .= $rss_split[$i];
            $i++;
        }
        $trim = str_replace('', '', $this->feed);
        $user = str_replace('&lang=fa-ir&format=rss_200', '', $trim);
        $rss_data .= '</div></div>';
        return $rss_data;
    }
}
?>
این فایل باید فقط شامل همین کدها باشه . چیز دیگه ای بهش اضافه نکنید . این فایل شامل یه کلاس php هست که بعضی متدها رو برای دریافت و نمایش لینکهای rss به شما میده . در گام بعدی به شما میگیم که به چه شکل از این کلاس استفاده کنید .
گام دوم : استفاده از کلاس فوق و نمایش لینکهای rss
حالا وقتشه که از کلاس بالا استفاده کنید . کافیه هر جا که بخواید باکس مربوط به لینک های rss سایت دیگه رو نمایش دید از 3 خط کد ساده ی زیر در فایل php خودتون استفاده کنید :
کد:
<?php
 require_once('rss.class.php');
 $feedlist = new rss('http://7Learn.com/rss');
 echo $feedlist->display(5, "7Learn Last Posts");
?>
  • در خط اول که در واقع همون کلاس بالا رو لود می کنیم تا ازش استفاده کنیم . دقت کنید که باید آدرس نسبی فایل بر روی سرور رو در دستور require_once بزارید .

  • در خط دوم آدرس فید و یا rss جایی که می خوایم مطالبش رو نمایش بدیم میزارم . دقت کنید که اون آدرس حتما باید آدرس rss ، feed ، atom و خوراک سایت باشه و نه آدرس خود سایت . در کد فوق آدرس فید سون لرن که به صورت http://7Learn.com/rss هست رو قرار دادیم .

  • در خط سوم هم که تعداد لینکهای نمایش داده و سرتیتر باکس رو وارد می کنیم . مثلا در کد بالا گفتیم 5 تا مطلب آخر سون لرن رو نمایش بده و عنوان بالای باکس هم 7Learn Last Posts باشه ! این تعدا و عنوان رو به صورت دلخواه می تونید مقادیر دیگه ای بزارید .
گام سوم : استایل دهی به باکس و لینک ها برای ایجاد ظاهری بهتر
تا الان اگه لینکها نمایش داده بشن ظاهرشون خیلی جالب نیست . برای اینکه با ظاهری بهتر اونها رو در صفحه ی وب ببینید کافیه کمی از کد های css کمک بگیرید .
می تونید کدهای css زیر رو هم در جایی که 3 خط فوق رو نوشتید به این شکل به فایل php دلخواهتون اضافه کنید تا همون ظاهری که در عکس بالا به رنگ قهوه ای براتون طراحی کردم رو داشته باشید :



کد:
<style>
   .vas {
       width: 270px;
       padding: 10px;
       direction: rtl;
       font-family: tahoma;
   }
   .vas a,.vas a:visited{
       text-decoration: none;
       border-bottom: 1px dashed #D3CAA7;
       padding: 5px 5px 7px 5px;
       display: block;
       color: #996E00;
   }
   .vas a:hover{
       color: #d19600;
   }

   .title-head {
       font-size: 18px;
       font-weight: bold;
       background-color: #996E00;
       color: #FFFFFF;
       padding: 5px;
       text-align: center;
       border-radius: 5px !important;
   }

   .feeds-links {
       text-align: right;
       padding: 5px;
       border: 1px solid #996E00;
       font-size: 13px;
       border-radius: 5px !important;
   }
</style>

<?php
 require_once('rss.class.php');
 $feedlist = new rss('http://7Learn.com/rss');
 echo $feedlist->display(5, "7Learn Last Posts");
?>



می بینید که استایل ها رو درون تگ <style> و قبل از 3 خط کد نمایش لینک ها آوردیم . این ظاهر و رنگبندی رو با دستکاری و تغیر کدهای css خودتون می تونید به صورت دلخواه در بیارید .

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

پیش نمایش
دریافت کد

[عکس: 468-60.jpg]
پاسخ
 سپاس شده توسط Milad ، MrAhmad




کاربران در حال بازدید این موضوع: 1 مهمان